8

文字、数字、ドット、アンダースコアを許可する私の正規表現は

var numericReg = /^[a-zA-Z0-9\._]+$/;

この正規表現でバックスペースを許可するにはどうすればよいですか?

4

5 に答える 5

22

[\b]バックスペースの一致に使用できます。したがって、それを文字クラスに追加するだけです: -

var numericReg = /^[a-zA-Z0-9._\b]+$/;

dot (.)文字クラスでエスケープする必要がないことに注意してください。そこには特別な意味はありません。

参照: -

より多くのエスケープ シーケンス、および正規表現のパターンについては。

于 2013-01-23T06:27:25.017 に答える
1

正規表現を次のように書き換えることをお勧めします。

var numericReg = /^[a-zA-Z0-9._]+|[\b]+$/

または:

var numericReg = /^(?:[a-zA-Z0-9._]|[\b])+$/
于 2016-10-22T19:57:37.817 に答える
1

正規表現を確認する前に、「event.keyCode」と「value.length」を確認してください。
キーコード 8 = バックスラッシュ

$('#my-input').on('keypress change', function(event) {
   // the value length without whitespaces:
   var value_length = $(this).val().trim().length;
   // check against minimum length and backspace
   if (value_length > 1 && event.keyCode != 8) {
      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;
      }
   }
}
于 2016-11-06T20:28:54.667 に答える
0

この問題の最適な解決策は、検証前に textbox >0 の値を確認することです。これは、空のテキストボックスでバックスペースを押しているときに表示されるエラーを解決するのに役立ちます..!!

于 2013-01-27T19:42:22.927 に答える