javascript中的正则表达式,允许退格

问题描述 投票:6回答:5

我的正则表达式允许使用字符,数字,点和下划线

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

我怎么能在这个注册表中允许退格?

javascript jquery regex
5个回答
21
投票

您可以使用[\b]来匹配退格。所以,只需将它添加到您的角色类: -

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

请注意,您不需要在字符类中转义dot (.)。它没有特别的意义。

也可以看看: -

更多转义序列和正则表达式中的模式。


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

0
投票

此问题的最佳解决方案是在验证之前检查textbox> 0的值。这将有助于解决在空文本框中按退格键时显示的错误.. !!


0
投票

我建议你重写你的正则表达式:

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

要么:

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

0
投票

我还制作了一个只接受数字(非十进制)和退格键盘的输入类型文本。我注意到在非Firefox浏览器中不需要将[\ b]放在正则表达式中。

var regExpr = new RegExp("^[0-9,\b][0-9,\b]*$");
© www.soinside.com 2019 - 2024. All rights reserved.