input:只禁用字母

input: Disable letters only

本文关键字:input      更新时间:2023-09-26

如何在输入中禁用字母,但仍然允许用户键入符号,如+()添加空格?

jsFiddle

$(".phone").on("keypress keyup blur",function (e) {    
    $(this).val($(this).val().replace(/^[a-zA-Z]+$/, ""));
        if ((e.which < 48 || e.which > 57)) {
            e.preventDefault();
    }
});
$(".phone").on("keypress keyup blur", function (event) {
  switch (event.keyCode) {
    case 43: // + character
    case 40: // the ( character
    case 41: // the ) character
      break;
    default:
      const regex = new RegExp("^[a-zA-Z0-9.,/ $@()]+$");
      const key = event.key;
      if (!regex.test(key)) {
        event.preventDefault();
        return false;
      }
      break;
  }
});

我最终使用了jquery。Alphanum插件,非常方便。

alphanum插件

$('#phone').alphanum({
   allowLatin : false,
   allowOtherCharSets : false,
   allow : '+, (, )',    // Allow extra characters
});