8
A
回答
7
你有兩種方法來這樣:
- 檢查「按鍵」事件。如果用戶按下特殊字符鍵,請將他停在那裏
- 檢查「onblur」事件:當輸入元素失去焦點時,驗證其內容。如果該值無效,則在該輸入框旁邊顯示謹慎的警告。
我會建議第二種方法,因爲它不那麼刺激。請記住還要檢查onpaste
。如果您只使用按鍵然後我們可以複製和粘貼特殊字符,所以使用onpaste
也限制粘貼特殊字符
此外,我還建議您重新考慮,如果你真的想防止用戶輸入特殊字符。因爲很多人在他們的密碼中都有$,#,@和*。
我認爲這可能是爲了防止SQL注入;如果是這樣:更好地處理檢查服務器端。或者更好的是,逃避價值並將它們存儲在數據庫中。
3
2
它會幫助您...假設您有一個帶有「表格名稱」窗體和帶有「txt」名稱的文本框的窗體。那麼你可以使用下面的代碼只允許aphanumeric值
var checkString = document.formname.txt.value;
if (checkString != "") {
if (/[^A-Za-z\d]/.test(checkString)) {
alert("Please enter only letter and numeric characters");
document.formname.txt.focus();
return (false);
}
}
11
試試這個,這個功能允許字母和空格:
function alpha(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
}
在你的HTML:
<input type="text" name="name" onkeypress="return alpha(event)"/>
+0
爲什麼測試`document.all`來確定對`e.keyCode`的支持?爲什麼不測試`e.keyCode`呢? – rvighne 2014-01-25 04:06:36
6
對於特殊字符:
var iChars = "[email protected]#$%^&*()+=-[]\\\';,./{}|\":<>?";
for (var i = 0; i < document.formname.fieldname.value.length; i++) {
if (iChars.indexOf(document.formname.fieldname.value.charAt(i)) != -1) {
alert ("Your username has special characters. \nThese are not allowed.\n Please remove them and try again.");
return false;
}
}
2
我想檢查keypress
事件是不完全足夠,因爲我相信用戶可以複製/粘貼到輸入框中,而不會觸發按鍵。
因此onblur
可能會更可靠一些(但不太直接)。
要真正讓你不想不記入輸入框中確認字符(或文本域等),我想你會需要
- 檢查
keypress
(如果你想給即時反饋)和 - 還檢查
onblur
, - 以及驗證服務器上的輸入(這是確保沒有任何不需要的數據進入您的數據的唯一真正方法)。
在其他答案的代碼示例將正常工作做客戶端檢查(只是不上檢查keypress
事件依賴僅),但作爲公認的答案是指出,服務器邊檢是非常必要的。
相關問題
- 1. Javascript特殊字符驗證
- 2. Onkeypress,javascript未驗證特殊字符
- 3. 驗證特殊字符的JavaScript
- 4. 驗證javascript中的特殊字符
- 5. 驗證特殊字符
- 6. 驗證特殊字符
- 7. 有特殊字符驗證數字
- 8. 驗證數字和特殊字符'_'
- 9. 特殊字符的必需驗證
- 10. 驗證特殊字符不工作
- 11. JSF:對特殊字符的驗證
- 12. jQuery的驗證特殊字符的
- 13. 有特殊字符Angular2密碼驗證
- 14. Knockout JS特殊字符驗證
- 15. 如何防止使用Codeigniter表單驗證的特殊字符?
- 16. Javascript特殊字符
- 17. Javascript驗證:阻止特殊字符從輸入文本框中單擊提交時
- 18. 檢查特殊字符(;)在驗證一個表單的JavaScript
- 19. javascript驗證,除了' - '和'_'外不允許使用特殊字符
- 20. 在JavaScript中沒有驗證特殊字符「_」
- 21. 我想阻止JavaScript驗證中的某些字符?
- 22. Jquery使用特殊字符驗證插件號碼驗證
- 23. 禁止特殊字符
- 24. 如何阻止HTML輸入字段中的特殊字符?
- 25. 如何驗證此字符串不包含Javascript中的任何特殊字符?
- 26. Preg_match驗證字符串中的特殊字符
- 27. 衝突的JavaScript阻止表單驗證
- 28. 衝突Javascript阻止表單驗證
- 29. 特殊字符在JavaScript
- 30. 的javascript:有特殊字符
限制輸入不一定是限制性的,它可能是輸入電話號碼,郵政編碼,日期等。 但是,對建議的+1加倍服務器端的檢查! – PhiLho 2009-05-25 12:08:48