相关疑难解决方法(0)

为什么带有全局标志的RegExp会产生错误的结果?

当我使用全局标志和不区分大小写的标志时,这个正则表达式有什么问题?查询是用户生成的输入.结果应该是[true,true].

var query = 'Foo B';
var re = new RegExp(query, 'gi');
var result = [];
result.push(re.test('Foo Bar'));
result.push(re.test('Foo Bar'));
// result will be [true, false]
Run Code Online (Sandbox Code Playgroud)

var reg = /^a$/g;
for(i = 0; i++ < 10;)
   console.log(reg.test("a"));
Run Code Online (Sandbox Code Playgroud)

javascript regex

254
推荐指数
4
解决办法
4万
查看次数

我的约会正则表达式出了什么问题?

var dateRegex = /\/Date\((\d+)\)\//g;    // [0-9] instead of \d does not help.
dateRegex.test("/Date(1286443710000)/"); // true
dateRegex.test("/Date(1286445750000)/"); // false
Run Code Online (Sandbox Code Playgroud)

Chrome和Firefox JavaScript控制台都证实了这一点.怎么了,伙计们?

编辑:更简单的测试用例:

var dateRegex = /Date\(([0-9]+)\)/g;
dateRegex.test("Date(1286445750000)"); // true
dateRegex.test("Date(1286445750000)"); // false
dateRegex.test("Date(1286445750000)"); // true
dateRegex.test("Date(1286445750000)"); // false
dateRegex.test("Date(1286445750000)"); // true
Run Code Online (Sandbox Code Playgroud)

这表明它每次都交替出现真/假......

javascript regex date

13
推荐指数
1
解决办法
2087
查看次数

为什么`pattern.test(name)`在连续调用时产生相反的结果

为什么这段代码首先返回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)

演示:小提琴

javascript regex

12
推荐指数
2
解决办法
1718
查看次数

标签 统计

javascript ×3

regex ×3

date ×1