[英]javascript regex to disallow all special characters
這是一個開始的小提琴 - http://jsfiddle.net/zuVpx/1/
Javascript代碼:
<script>
function validate(e) {
var regex = new RegExp("[a-zA-Z0-9]");
var key = e.keyCode || e.which;
key = String.fromCharCode(key);
if(!regex.test(key)) {
e.returnValue = false;
if(e.preventDefault) {
e.preventDefault();
}
}
}
</script>
HTML代碼:
<input type="text" onkeypress="validate(event)" />
我只想要字符和數字。 退格鍵、刪除鍵、大寫鎖定鍵和箭頭鍵等鍵應該可以工作。
提前致謝。
在輸入中添加一個id
(例如“驗證”)並使用:
document.querySelector('#validate').onkeypress = validate;
function validate(e) {
e = e || event;
return /[a-z0-9]/i.test(
String.fromCharCode(e.charCode || e.keyCode)
) || !e.charCode && e.keyCode < 48;
}
嘗試
/[-!$%^&*()_+|~=`\\#{}\[\]:";'<>?,.\/]/.test(your_variable)
如果匹配,則返回 true。
只使用一個額外的 if 子句怎么樣? 就像是...
key.charCodeAt(0) > 32
所以...
function validate(e) {
var regex = new RegExp("[a-zA-Z0-9]");
var key = e.keyCode || e.which;
key = String.fromCharCode(key);
if(!regex.test(key) && key.charCodeAt(0) > 32) {
e.returnValue = false;
if(e.preventDefault) {
e.preventDefault();
}
}
}
要克服,例如左箭頭鍵產生相同的問題key
值作為%
鍵,你可以使用
function validate(e) {
e = e || window.event;
var bad = /[^\sa-z\d]/i,
key = String.fromCharCode( e.keyCode || e.which );
if ( e.which !== 0 && e.charCode !== 0 && bad.test(key) ) {
e.returnValue = false;
if ( e.preventDefault ) {
e.preventDefault();
}
}
}
任何可打印的字符都應該產生一個非零的e.which
和e.charCode
值。
請參閱JavaScript 瘋狂:鍵盤事件。
以上假設空格有效 - 如果不是,只需從否定字符類中刪除\\s
。
這對我有用。 防止用戶輸入特殊字符(退格等除外)
PatternValidation(e){
if(!e.key.match(/^[a-zA-Z0-9]*$/))
{
e.preventDefault();
}
},
這是通過將 html 屬性與 keydown 事件處理程序綁定來觸發的
<input type="text" onkeydown="PatternValidation($event)">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.