2016-12-01 125 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準確地瞭解發生了什麼。另外,除非它是一個Class,否則保持函數名稱爲lowerCamelCase是很好的做法。

+0

感謝您的回覆!我能夠通過添加「throw/\ s'/;」來實現它的工作 該工具看起來很方便。我一定會在將來使用它。 – TuCraiN