JavaScript RegExp [^..]没有达到预期结果的表达
JavaScript RegExp [^...] expression not giving intended result
我的代码如下:
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结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- RegExp:匹配Javascript中除regex值之外的所有内容
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- JavaScript正则表达式文本与RegExp对象
- Javascript,输出结果后页面不断刷新
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果
- JavaScript Regexp.test返回意外结果
- Javascript RegExp 与构造函数和文字不同的结果
- 为什么 HTML5 checkValidity() 从 JavaScript regexp.test() 返回不同的结果
- RegExp() 逻辑和/或结果出乎意料
- JavaScript:regexp循环内外测试的不同结果
- 使用regexp结果集的一部分进行匹配
- NodeJS RegExp:如何访问结果的完整列表
- Javascript RegExp用全局修饰器产生不寻常的结果
- JavaScript RegExp [^..]没有达到预期结果的表达
- 为什么RegExp split()和match()会给出不同的结果
- JavaScript RegExp测试方法工作不稳定,我的意思是第一次执行和第二次执行的结果不同