2012-04-12 100 views
1

如何限制用戶在文本框中輸入特殊字符和數字。我只想輸入字母(輸入/粘貼)。限制用戶輸入特殊字符和數字

給我示例javascript代碼?

+0

所以如果我是日本人,或者是Kor恩,你會阻止我嗎?如果我合法地使用了一個特殊字符作爲一個人的名字,你還會阻擋我嗎?世界上有很多語言,你***不能跟蹤所有*「特殊字符」*。 – Joseph 2012-04-12 05:25:05

+0

可能重複的[我應該從名稱中篩選出奇怪的字符](http://stackoverflow.com/questions/8831700/should-i-screen-out-odd-characters-from-names) – Joseph 2012-04-12 05:37:31

回答

1

而不是阻止某些字符的輸入,它是更方便用戶和有效的驗證表單提交時的值。你真的不在意這個領域的價值是什麼,你不需要特殊的處理來輸入價值。它可能被粘貼,拖動,自動輸入,通過插件或腳本或其他方法輸入。

一個簡單的例子:

</script> 

<form onsubmit="return validate(this);"> 
    <input type="text" name="foo"> 
    <input type="submit"> 
</form> 

<script type="text/javascript"> 
function validate(form) { 
    var re = /^[a-z,A-Z]+$/i; 

    if (!re.test(form.foo.value)) { 
    alert('Please enter only letters from a to z'); 
    return false; 
    } 
} 
</script> 
2

看看這個問題:Function to return only alpha-numeric characters from string?

這是你後:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $inputVar); 

如果要插入到這一點後,該數據庫時,一定要使用像mysql_real_escape_string()或準備好的陳述。

依賴於Javascript純粹用於字符驗證是一種非常糟糕的做法,因爲JS很容易被禁用,並且在全球所有設備上都未啓用。

+0

有一件事問題似乎更有可能是關於JavaScript(關鍵事件中的驗證函數以阻止寫入),並且您應該知道,這裏的人不僅僅爲其他人甚至沒有嘗試過的東西做這項工作 – mishu 2012-04-12 05:31:16

+0

原來的問題有點含糊,但很好。我添加了「完全」一詞。無論哪種方式,他都將「PHP」作爲標籤,並將其包含在內,包括表單驗證。我認爲覆蓋所有方面而不僅僅是JS是很重要的。 – tcole 2012-04-12 05:32:58

+0

你是對的,js驗證可以很容易地通過(用控制檯編輯瀏覽器,禁用js等),但php驗證是最重要的 – mishu 2012-04-12 05:35:13

1

你可以試試這個,我現在用這個適合我目前的項目

$(document).ready(function(){ 

/* Allow integers only in form input field with id #selector */ 
$('#selector').keyup(function() { 
    this.value = this.value.replace(/[^0-9\.]/g,''); 
    }); 
}) 

它也不允許複製粘貼,但弱點是右鍵點擊粘貼

聲明:我剛剛從網上找到它

+1

由於JavaScript只能在瀏覽器中關閉,因此不採用此安全檢查,因此不是很好的做法。 – ryansin 2017-03-01 17:00:53