字母数字最后4位的正则表达式

regular expression for last 4 digits of alphanumeric

本文关键字:正则表达式 4位 最后 数字      更新时间:2023-09-26

我有以下代码来屏蔽字段的最后4位以外的所有数字,但当用户在最后4位输入字母数字时,会出现Null异常。示例输入:1a1a1a1a

我怎么能接受字符呢?

var mask = val.match(/^(.*?)('d{4})$/);
return (mask[1] ? mask[1].replace(/'d/g, '*') : '') + (mask[2] ? mask[2] : '')

return行出现错误:Error: '1' is null or not an object

您不需要为此使用regex。只需使用字符串长度函数。

这里有一个jQuery解决方案:

$(function() {
  var contents = "";
  $("#masking").blur(function() {
    contents = $(this).val();
    $(this).val(mask(contents));
  });
  $("#masking").focus(function() {
    if (contents.length > 0) {
      $(this).val(contents);
    }
  });
});
function mask(unmaskedValue) {
  if (unmaskedValue.length > 1) {
    var masked = "";
    var remain = 0;
    if (unmaskedValue.length <= 4) {
      masked += "*";
      remain = unmaskedValue.length - 1;
    } else {
      for (i = 0; i < unmaskedValue.length - 4; i++) {
        masked += "*";
      }
      remain = 4;
    }
    masked += unmaskedValue.substring(unmaskedValue.length - remain, unmaskedValue.length);
    return masked;
  } else
    return "";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Type:</label>
<input id="masking" type="text">