2017-03-14 103 views
0

我想驗證javascript中的特殊字符,如@, #, $, %, ^, &, *,並向用戶顯示消息。如果用戶輸入這些特殊字符的組合,我需要顯示一條消息並阻止保存表單。驗證javascript中的特殊字符

我想下面的一個,

 var label_name = $('#label_name_popup').val(); 
     var regExp = /^[a-zA-Z]*$/ 
     if (!regExp.test(label_name)) { 
      alert("Special character not allowed") 
      return false; 
     } 
     else { 
      return true; 

     } 

這是行不通的。任何人都可以幫助我如何在JavaScript中驗證它。

+2

定義 「不工作」? –

+0

它不起作用?它看起來不像你的問題來自你在這裏發佈的代碼片段... – Frxstrem

+0

@JeremyThille總是去其他部分並得到保存 – user2681579

回答

0

我建議您使用keyup事件來測試每個新輸入字符的input值。如果它未通過測試功能,則會顯示警報。

這並不能解釋爲什麼OP的代碼不起作用。 - OP沒有在任何函數中刪除他的代碼,也沒有將其綁定到任何event listener。那麼它應該如何工作呢?

防止保存表格。 - 如果輸入有效,則可以實現一個boolean變量,該變量包含truthy值,如果不是,則爲falsy

然後執行一個簡單的條件,同時提交表單,雖然isInputValid變量爲false,但無法提交表單。

var regExp = new RegExp(/^[a-zA-Z]*$/), 
 
    isInputValid = false; 
 

 
$('#label_name_popup').on('keyup', function() { 
 
    var label_name = $('#label_name_popup').val(); 
 
    if (regExp.test(label_name) && label_name) { 
 
    console.log("The form is valid."); 
 
    isInputValid = true; 
 
    } else { 
 
    console.log("The form is invalid."); 
 
    isInputValid = false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id='label_name_popup'>

+0

這並不能解釋爲什麼OP的代碼不起作用。這是相同的正則表達式測試。此外,它警告該字符不被允許,但允許它。 –

+0

是的,這樣更好:) –