gpt4 book ai didi

JavaScript RegExp [^...] 表达式未给出预期结果

转载 作者:行者123 更新时间:2023-12-03 06:09:25 24 4
gpt4 key购买 nike

下面是我的代码:

function isValid(passCode){
var myRegExp=/[^a-z\d]/i;
return !(myRegExp.test(passCode));
}

if (isValid(prompt("Enter passcode:",""))){
alert("Access granted");
}else{
alert("Denied");
}

根据我的理解,例如,如果我将 abc 作为参数传递给 isValid() 函数,myRegExp.test应返回 true,因此 isValid() 应返回 false(因为使用了 ! 运算符)。但该函数返回true。为什么?

这是 JSFiddle:https://jsfiddle.net/k7d4va5k/#&togetherjs=GCP5bmgPP4

最佳答案

通过“字符类”(也称为“字符集”),您可以告诉正则表达式引擎仅匹配多个字符中的一个。只需将要匹配的字符放在方括号之间即可。

/[a-z\d]/ 

此墙匹配字母和数字

在左方括号后键入插入符号 (^) 会否定字符类。结果是字符类与不属于该字符类的任何字符相匹配。因此

/[^a-z\d]/.test('abc') will be false

/^[a-z\d]/.test('abc') will be true

因为在后一种情况下,插入符号表示行的开头,这意味着如果在字符类之外使用插入符号,它表示行的开头,而不是否定字符类。

关于JavaScript RegExp [^...] 表达式未给出预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39382357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com