2016-12-01 3 views
0

Мне нужно изменить эту функцию для правильной работы. Он должен ограничивать все, кроме алфавита, пробелов и апострофов. В настоящее время он все еще ограничивает апострофы. Я предполагаю, что шаблон «\ _» относится ко всем специальным символам. Как вставить исключение в эту функцию?Ограничение символов в текстовом поле

function NameNotNA (s) { 
     var pattern; 
     if (s.toUpperCase().indexOf('N/A') != -1){ 
      //console.warn('failed in n/a'); 
      return false; 
     } 
     // Eliminate possibility of digits 
     pattern = /\d/; 
     if (s.match(pattern) != null) { 

      //console.warn('failed in \d'); 
      return false; 
     } 

     pattern = /\_/; 
     if (s.match(pattern) != null) { 
      //console.warn('failed in \_'); 
      return false; 
     } 

     s = s.replace(/ /g, ''); 
     if (s.match(/\W/) != null) { 
      return false; 
     } 

     return true; 
    } 
+1

s.replace (/ [^ \ a-z \ s ']/ig,' '); – Annarfych

ответ

0
function nameNotNA (s) { 
    return s.replace(/[^\w\s']/g, ''); 
} 

Для регулярных выражений, я люблю использовать this tool, чтобы точно понять, что происходит. Кроме того, полезно сохранить имена ваших функций lowerCamelCase, если это не класс.

+0

Спасибо за ответ! Я смог заставить его работать, добавив «throw/\ s» /; Этот инструмент выглядит удобно. Не забудьте использовать его в будущем. – TuCraiN

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