是的,
可能重复:
javascript字符串exec奇怪行为
我有一个正则表达式,我正在像这样使用
new_regex = /^[+-]?(d+).*s+(d+).*s+([d.]+)/g
>> /^[+-]?(d+).*s+(d+).*s+([d.]+)/g
myregex = new RegExp(new_regex)
>> /^[+-]?(d+).*s+(d+).*s+([d.]+)/g
subject = "+39° 44' 39.28""
>> "+39° 44' 39.28""
以上适用于每隔一次我执行以下操作:
myregex.exec(subject)
>> ["+39° 44' 39.28", "39", "44", "39.28"]
第二次执行时,为空
myregex.exec(subject)
>> null
.exec
就是这样使用全局标志的。如果你通过相同的科目,它将进入下一场比赛,直到它没有找到匹配项并返回null
:
var str = "1111",
re = /1/g;
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str) // null
您可以通过再次更改execing
之前的主题来重置它:
re.exec("") //Will reset it.
重置示例:
var str = "1111",
re = /1/g;
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(""); //Reset
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str); //["1"]
re.exec(str) // null