显然,回到Firefox 3.6,以下是合法的:
/[0-9]{3}/('23 2 34 678 9 09')
结果是'678'。
FF8没有。现在什么是正确的语法?
答案 0 :(得分:6)
你想要吗
/[0-9]{3}/.test('23 2 34 678 9 09');
或
/[0-9]{3}/.exec('23 2 34 678 9 09');
答案 1 :(得分:3)
我不知道为什么你需要这种语法,但这里有一些关于lulz的东西:
RegExp = (function(){
var old = RegExp;
return function(){
return old.prototype.exec.bind( old.apply( this, arguments ) );
};
})()
然后:
new RegExp( "[0-9]{3}" )('23 2 34 678 9 09')
//["678"]
请注意,使用文字时不会调用被黑客入侵的构造函数,因此仅在使用new RegExp
时才有效; P
答案 2 :(得分:2)