为什么RegExp不匹配?

时间:2012-10-10 07:38:08

标签: javascript regex node.js

我正在使用Node v.0.8.8。

在以下示例中,为什么 url /([\w-]+)正则表达式不匹配?这是一个错误还是我做错了什么?

var patterns = [
    '/([\w-]+)',
    '/.*'
],
    url = '/asdf';

for (var pattern in patterns) {
    var re, match;

    re = new RegExp('^' + patterns[pattern] + '$');

    if ((match = re.exec(url))) {
        console.log(url + ' matched: ' + patterns[pattern])

        // break the loop since we've already found the first match
        return false;
    }
    else{
        console.log(url + ' NOT matched: ' + patterns[pattern])
    }
}

1 个答案:

答案 0 :(得分:6)

由于您从字符串文字创建正则表达式,因此需要转义反斜杠:

'/([\\w-]+)'