javascript模式匹配

时间:2011-05-11 20:44:36

标签: javascript regex pattern-matching

对于像asklas@(((#之类的输入,

matchArray变为null如何更正此行为?我只想允许字符和数字..

function validateName(name) {
    debug(name);
    var namePat = /^(\[A-Za-z0-9]*)$/ ;
    var matchArray = name.match(namePat);
    if (!matchArray){
        debug ("Invalid name,", name );
        return false;
    } 
    return true;
}

2 个答案:

答案 0 :(得分:4)

你的正则表达式中有一个错误的反斜杠。它应该是

var namePat = /^[A-Za-z0-9]*$/;

(并且您也不需要捕获括号。)

答案 1 :(得分:1)

在这种情况下不确定你想要什么...如果你想要一个布尔输出,请使用.test:

namePat.test(name)

...但是null适用于您的测试(!matchArray)就好了。

看起来你的正则表达式中有一个拼写错误 - 你想要在开始括号之前摆脱反斜杠......