为什么这段代码首先返回true,然后返回false
var pattern = new RegExp("mstea", 'gi'), name = "Amanda Olmstead";
console.log('1', pattern.test(name));
console.log('1', pattern.test(name));
Run Code Online (Sandbox Code Playgroud)
演示:小提琴
g用于重复搜索.它将正则表达式对象更改为迭代器.如果要根据模式使用该test函数检查字符串是否有效,请删除此修饰符:
var pattern = new RegExp("mstea", 'i'), name = "Amanda Olmstead";
Run Code Online (Sandbox Code Playgroud)
该test函数与整个迭代相反replace或match不消耗,使其处于"坏"状态.使用该test函数时,您可能永远不会使用此修饰符.
您不希望将gi与pattern.test结合使用.g标志表示它会跟踪您正在运行的位置,以便可以重复使用.所以相反,你应该使用:
var pattern = new RegExp("mstea", 'i'), name = "Amanda Olmstead";
console.log('1', pattern.test(name));
console.log('1', pattern.test(name));
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用/.../[flags]语法进行正则表达式,如下所示:
var pattern = /mstea/i;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |