2016-04-14 2 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 символов, и оно не должно содержать каких-либо специальных символов, оно может иметь буквенно-цифровые символы. Проблема в том, что я запрещаю использовать «Капитальные письма». Также он может принимать слова на любом языке. Спасибо.Regex Проблема в Javascript escape специальных символов

+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

It Также Работал !! – binitgutka

+0

запомнить использование '\ s' для белых пробелов, имена могут содержать пробелы –

0

Вы можете просто заменить метод с

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

\W+ проверки для всех специальных символов.

Смежные вопросы