请考虑以下代码段:
var regex = /^\d+$/; // equivalent to new RegExp('^\\d+$');
console.println(regex.test('000'));
console.println(regex.test('abc0'));
console.println(regex.test('ddd'));
人们会期望输出为:
true
false
false
但是,当我在运行JavaScript 1.8的Adobe Acrobat X上运行它时,它会输出:
false
false
true
这里发生了什么?
答案 0 :(得分:3)
这可能是通往Javascript解释器的字符串处理结果,导致\d
被解释为d
。一个额外的反斜杠(显然)可以解决问题。
/^\\d+$/