这是我的jquery代码:
$("body #fuid, #muid").on('keypress change', function ()
{
$(this).val(function (index, value)
{
return value.replace(/\W/gi, '').replace(/(.{4})/g, '$1 ');
});
});
我有一个像这样的HTML代码:
<div class="form-group col-md-4">
<label for="father_uid">Father's Aadhar Number (Optional)</label>
<input type="text" minlength="14" maxlength="14" onkeypress="return IsNumeric(event);" class="form-control" id="fuid" name="father_uid" placeholder="Enter Father's Aadhar Number">
</div>
jquery代码工作正常但是我们可以看到我添加了一个maxlength = 14的属性,即它不应该接受14个长度之后的字符,但是根据我的jquery代码,一旦我输入第14个字符,它就会给出一个空格在最后打破最大长度计数时,我不能自己添加字符,因为它不接受它。
任何有帮助的人
Current Output: 1234 6789 6788 (With a blank space additionally added at end)
Desired Output: 1234 6789 6788(With no blank space additionally added at end)
答案 0 :(得分:0)
你可以在返回之前修剪它。这将删除最后一个字符,如果它超过14个字符,如果不是则不执行任何操作。如果在格式化之前字符中有更多或更少的字符,您可能需要调整一些数字:
var substringLength = 14;
if (value.length < 14){
substringLength = value.length;
}
return value.replace(/\W/gi, '').replace(/(.{4})/g, '$1 ').substring(0, substringLength);
答案 1 :(得分:0)
我稍微修改了一下代码,问题归因于.replace
替换为$1
var foo = $(this).val().split(" ").join("");
if (foo.length > 0) {
foo = foo.match(new RegExp('.{1,4}', 'g')).join(" ");
}
$(this).val(foo);