8

我的允许字符、数字、点和下划线的正则表达式是

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

我怎么能在这个 reg ex. 中允许退格?

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 回答
0

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

var regExpr = new RegExp("^[0-9,\b][0-9,\b]*$");
于 2018-03-01T23:14:59.227 回答