Javascript正则表达式失败
Javascript regular expression is failing
我使用以下javascript正则表达式:
var pattern = new RegExp("^" + term + ".*")
console.log(pattern.toSource());
console.log(first_name + " : " + pattern.test(first_name) );
我想让它做的就是检查这个人的名字是否以给定的搜索词开头。例如,如果搜索词是"a",那么所有以a开头的名字都应该匹配,例如:andy, alice等。如果是al,那么只有alice应该匹配,以此类推。但是输出是:
/^a.*/
Alyssa : false
我做错了什么?
正则表达式是区分大小写的。所以Alyssa
不匹配,因为A
和a
是不同的符号。您可能需要使用不区分大小写的regex match:
var pattern = new RegExp("^" + term + ".*", "i")
console.log(pattern.toSource());
console.log(first_name + " : " + pattern.test(first_name) );
没有问题,您应该使用
使RegExp不区分大小写。var pattern = new RegExp("^" + term + ".*","i")
匹配你的名字,只要你想让测试用例不敏感,或者使用像/^[aA].*/
您可以将RegEx指定为不区分大小写,以便a
将匹配a
和A
:
var pattern = new RegExp("^" + term + ".*", "i");
设置RegExp
大小写不敏感:
var pattern = new RegExp("^" + term + ".*", "i");
查看文档
你的正则表达式是大小写敏感的所以它不匹配Alyssa添加这一行到你的代码:
pattern.ignoreCase = true;
不工作的原因是正则表达式是区分大小写的。A
不是a
你做错的其他事情:
- 懒得说"后面跟着零个或多个字符",那只是多余的。
- 当一个简单的子字符串检查可以完成工作时使用正则表达式。
我想这样做:
console.log(
first_name + " : " +
(first_name.toLowerCase().indexOf(term.toLowerCase()) === 0)
);
相关文章:
- Javascript正则表达式失败
- 如何查找正则表达式的哪个部分/组失败
- Javascript正则表达式失败,但不确定原因
- JavaScript:当存在单引号时,用于替换双花引号的正则表达式失败
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- Javascript正则表达式在IE中失败,但在Chrome和Edge中工作
- 使用 match 匹配某些字符串,正则表达式失败
- 字母数字 JavaScript 正则表达式失败
- 正则表达式替换失败
- 英国排除了邮政编码正则表达式失败
- 重复相同的字符时,正则表达式将失败
- JavaScript 正则表达式 test() 在 Jasmine 测试期间在变量中时正则表达式失败
- 在 JavaScript 正则表达式上失败
- JavaScript 中的正则表达式验证在 IE8 中失败
- 有人能解释为什么JS正则表达式在这种情况下失败吗
- JavaScript全局捕获中的正则表达式失败
- 正则表达式在URL地址测试中失败
- Regex-正则表达式模式在URL GET参数上失败
- Javascript正则表达式失败(循环?)
- 使用正则表达式验证电子邮件地址失败