2

我有一个简单的模式来验证时间 - 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对象作为解决方法,但我很想知道会发生什么

我还注意到对象在与Methodpatt一起使用后没有改变test()

jsFiddle对于那些想要证明某事的人

4

1 回答 1

1

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

于 2013-07-09T16:42:56.030 回答