javascript正则表达式作为函数?

时间:2011-12-17 20:01:23

标签: javascript regex

显然,回到Firefox 3.6,以下是合法的:

/[0-9]{3}/('23 2 34 678 9 09')

结果是'678'。

FF8没有。现在什么是正确的语法?

3 个答案:

答案 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)