字母数字最后4位的正则表达式
regular expression for last 4 digits of alphanumeric
我有以下代码来屏蔽字段的最后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">
相关文章:
- 千位分隔符的正则表达式
- 按键时的正则表达式,取一个十进制值,允许小数后三位
- 正则表达式,只允许5位数字或字母字符后跟5位数字
- 电话正则表达式,但希望使所有 10 位数字都相同无效
- 正则表达式 - 字符串不应包含超过 7 位数字
- 正则表达式为 5 位 zip 或空
- 正则表达式表示数字,不超过 3 位数字,十进制可以是 .50 或 .00
- 正则表达式只允许在第一位使用连字符
- 增强千位分隔符的正则表达式
- Javascript 正则表达式 - 如果不是 4 位数字,则保持零
- Javascript 正则表达式:获取所有介于 2 到 6 位之间的数字,但不是 5
- 用于16位数字和正斜杠的正则表达式
- Javascript:正则表达式,用于匹配任意序列中的8位数字、一个字符和一个hypen
- 字母数字最后4位的正则表达式
- Javascript正则表达式,用于匹配空字符串、非数字字符或超过1位的数字
- 从电话号码中提取两位数字的正则表达式
- 6位base36数字范围的正则表达式
- 需要一个正则表达式,确保数字以01 02或08开头,长度为10或11位
- 如何创建只接受最多12位数字的正则表达式
- 排除特定位的正则表达式