KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Today I came across a very strange JavaScript regular expression issue. When using the global modifier (//g), RegExp.test() yields different values in subsequent calls. Can anyone explain why? var s = "youtube.com/watch?v=XyeebVA3DNk"; var re1 = /^youtube\.com\/watch[a-zA-Z0-9_\-\?\&\=\/]+/g; console.log(re1.test(s)); // true console.log(re1.test(s)); // false console.log(re1.test(s)); // true console.log(re1.test(s)); // false console.log(re1.test(s)); // true console.log(re1.test(s)); // false console.log(re1.test(s)); // true var re2 = /^youtube\.com\/watch[a-zA-Z0-9_\-\?\&\=\/]+/; console.log(re2.test(s)); // true console.log(re2.test(s)); // true console.log(re2.test(s)); // true console.log(re2.test(s)); // true console.log(re2.test(s)); // true console.log(re2.test(s)); // true I am able to reproduce this in Chrome 8 and FireFox 3.6.
Tags (comma-separated)
Save Edits
Cancel