Javascript中的正则表达式问题转义特殊字符

时间:2016-04-14 10:39:41

标签: javascript jquery-plugins

validateName = function (str) {
               if (((/[!@#$%^&*()_+=-`~,.<>;':"\/\[\]\|{}(_+]/)).test(str)) {
            return false;
        }
        if (str.length <= 2 || str.length >= 19) {
            return false;
        }
        return true;
    }

嗨,在上面的正则表达式中,我试图接受3到20个字符之间的名称,并且它不应该包含任何特殊字符,它可以包含字母数字字符。 问题是不允许我使用大写字母。 它也可以接受任何语言的单词。 感谢。

2 个答案:

答案 0 :(得分:0)

您只需用

替换您的方法即可
validateName = function (str) {
    if ( (/\W+/).test(str) || str.length <= 2 || str.length >= 19 ) 
    {
        return false;
    }
    return true;
}

\W+检查所有特殊字符。

答案 1 :(得分:0)

您必须在其他语言中包含您想要的所有字符,否则在正则表达式下就足够了

var regex = /[^\w\s]+/;

例如

validateName = function (str) {
    var regex = /[^\w\s]+/;
    if (regex.test(str) || str.length <= 2 || str.length >= 19 ) 
    {
        return false;
    }
    return true;
}