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

Regex Issue in Javascript escape special characters

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

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

您只需将您的方法替换为

validateName = function (str) {
    if ( (/\W+/).test(str) || str.length <= 2 || str.length >= 19 ) 
    {
        return false;
    }
    return true;
}

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

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

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;
}