javascript RegExp模式在与test()方法一起使用后发生更改

javascript RegExp pattern change after used with test() method

本文关键字:一起 方法 模式 RegExp test javascript      更新时间:2023-09-26

我有一个简单的模式来验证时间-24小时模式-

var patt = /^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/g; 

如果我用.test()方法执行这个模式两次,我会得到两个不同的值

像这个

代码

console.log(patt.test('01:09')); // true
console.log(patt.test('01:09')); // false 

我注意到,如果我做以下操作,我会得到相同的结果:

var patt = /^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/g; 
console.log(patt.test('01:09')); // true
var patt = /^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/g; 
console.log(patt.test('01:09'));//true

问题在我的情况下,我将重新启动patt对象作为变通方法,但我很想知道会发生什么

此外,我注意到patt对象在与test()方法一起使用后不会更改

jsFiddle为那些想要证明的东西

删除global标志。目前,它正在第二次搜索输入字符串的末尾,在那里它不会再找到模式。有关lastIndex属性,请参阅文档。

相关文章: