如何使用jquery阻止或限制輸入字段中的特殊字符?如何使用jquery阻止特殊字符輸入到輸入字段?
3 回答
蕭十郎
TA貢獻1815條經驗 獲得超13個贊
一個使用正則表達式的簡單示例,您可以將其更改為允許/禁止您喜歡的任何內容。
$('input').on('keypress', function (event) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}});
紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
我一直在尋找一個限制輸入僅限于字母數字字符的答案,但仍然允許使用控制字符(例如,退格鍵,刪除鍵,制表符)和復制+粘貼。我嘗試的答案都沒有滿足所有這些要求,所以我想出了以下使用該input事件。
$('input').on('input', function() {
$(this).val($(this).val().replace(/[^a-z0-9]/gi, ''));});編輯:
正如rinogo在評論中指出的那樣,上面的代碼片段在輸入文本的中間鍵入時強制光標到輸入的末尾。我相信下面的代碼片段可以解決這個問題。
$('input').on('input', function() {
var c = this.selectionStart,
r = /[^a-z0-9]/gi,
v = $(this).val();
if(r.test(v)) {
$(this).val(v.replace(r, ''));
c--;
}
this.setSelectionRange(c, c);});
catspeake
TA貢獻1111條經驗 獲得超0個贊
簡短回答:阻止'按鍵'事件:
$("input").keypress(function(e){
var charCode = !e.charCode ? e.which : e.charCode;
if(/* Test for special character */ )
e.preventDefault();})答案很長:使用像jquery.alphanum這樣的插件
選擇解決方案時需要考慮以下幾點:
粘貼文字
上述代碼可以防止像退格或F5這樣的控制字符。
é,í,?等
阿拉伯語或中文......
跨瀏覽器兼容性
我認為這個領域足夠復雜,可以保證使用第三方插件。我嘗試了幾個可用的插件,但發現每個插件都有一些問題所以我繼續寫了jquery.alphanum。代碼如下所示:
$("input").alphanum();或者對于更精細的控制,添加一些設置:
$("#username").alphanum({
allow : "€$£",
disallow : "xyz",
allowUpper : false});希望能幫助到你。
- 3 回答
- 0 關注
- 1679 瀏覽
添加回答
舉報
0/150
提交
取消
