如何删除具有固定长度的输入字段中的空格

时间:2017-02-09 13:31:45

标签: jquery

这是我的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)

2 个答案:

答案 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);

演示:https://jsfiddle.net/avhsz7ec/