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

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

+0

取代复杂的正则表达式用简单'/ \ w + /' – gurvinder372

回答

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

它也工作了! – binitgutka

+0

记住'\ s'的用法是用于空格,名字可以包含空格 –

0

你可以简单地用

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

\W+检查所有特殊字符替换你的方法。