亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用jquery阻止或限制輸入字段中的特殊字符?

如何使用jquery阻止或限制輸入字段中的特殊字符?

夢里花落0921 2019-07-26 16:20:02
如何使用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;
    }});


查看完整回答
反對 回復 2019-07-26
?
紅糖糍粑

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);});


查看完整回答
反對 回復 2019-07-26
?
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});

希望能幫助到你。


查看完整回答
反對 回復 2019-07-26
  • 3 回答
  • 0 關注
  • 1679 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號