为什么我得到错误,而测试regexp
Why am i getting false while testing reg exp?
为什么下面的脚本返回false ?
var a = new RegExp("/^[A-Za-z]+[A-Za-z's]+$/");
var b = "software engineer";
var c = "software.engineer";
var bool = a.test(b);
document.write(bool);
这是我对reg exp的理解:字符串可以以可能出现一次或不止一次的字母开始,以可能出现一次或不止一次的空格或字母结束。
在这种情况下它应该返回true !
您需要使用:
var a = new RegExp("^[A-Za-z]+[A-Za-z''s]+$");
或:
var a = /^[A-Za-z]+[A-Za-z's]+$/;
所以没有分隔符,如果你使用new RegExp
和new RegExp
也需要双转义
您将regex定义为字符串,这意味着/
分隔符不是必需的,实际上被视为模式的一部分。
语法为:
var regex = /foo/;
or
var regex = new RegExp("foo");
你写你的正则表达式作为一个字符串,所以JS语法干扰正则表达式语法。使用文字代替:
var a = /^[A-Za-z]+[A-Za-z's]+$/;
这相当于:
var a = new RegExp("^[A-Za-z]+[A-Za-z''s]+$");
除了你不需要转义你的反斜杠
您混淆了字符串字面值和正则表达式字面值。使用:
var a = new RegExp("^[A-Za-z]+[A-Za-z''s]+$");
或
var a = /^[A-Za-z]+[A-Za-z's]+$/;
详细信息请访问https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions。
相关文章:
- 模糊事件的Javascript测试
- Javascript regexp 测试行为与函数
- 为什么Javascript RegExp测试对此字符的Unicode值给出“false”
- RegExp测试有两个变量:可能
- JavaScript:regexp循环内外测试的不同结果
- regexp匹配测试工作不正常
- Javascript Regexp测试方法的怪异行为
- 在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
- JavaScript RegExp:测试和执行
- 为什么我得到错误,而测试regexp
- 我应该regexp吗?测试之前,我string.replace
- RegExp JavaScript错误测试
- 分配RegExp.测试一个变量
- RegExp.测试不工作
- RegExp.测试总是返回false
- 对于具有全局选项的模式,连续调用RegExp测试失败
- JavaScript RegExp测试方法工作不稳定,我的意思是第一次执行和第二次执行的结果不同
- Javascript RegExp - 测试方法问题
- RegExp GWT/Javascript的测试方法
- 为什么这个QUnit RegExp测试失败?