Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 带“的输入字段”;xxx-xxxxxxx-yy“;需要验证_Jquery_Regex_Validation - Fatal编程技术网

Jquery 带“的输入字段”;xxx-xxxxxxx-yy“;需要验证

Jquery 带“的输入字段”;xxx-xxxxxxx-yy“;需要验证,jquery,regex,validation,Jquery,Regex,Validation,我正在尝试对数字格式进行验证,键入时应自动替换字符中的数字 格式为:xxx-xxxxxxx-yy,另一个字段为“xx xx xx xx” 我的代码: $('#id_number').on("keypress keyup blur", function(event) { $('span.error-keyup-1').hide(); var inputVal = $(this).val(); $(this).val($(this).val().rep

我正在尝试对数字格式进行验证,键入时应自动替换字符中的数字

格式为:xxx-xxxxxxx-yy,另一个字段为“xx xx xx xx”

我的代码:

$('#id_number').on("keypress keyup blur", function(event) {
        $('span.error-keyup-1').hide();
        var inputVal = $(this).val();
        $(this).val($(this).val().replace(/[^0-9\.]/g, ''));
        var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
        if(!numericReg.test(inputVal)) {
            $(this).after('<span class="error error-keyup-1">Numeric characters only.</span>');
        }
    });
$('#id_number')。打开(“按键向上模糊”,函数(事件){
$('span.error-keyup-1').hide();
var inputVal=$(this.val();
$(this.val($(this.val().replace(/[^0-9\.]/g');
var numericReg=/^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
如果(!数值示例测试(输入值)){
$(此).after('仅限数字字符');
}
});
我一直到现在。但在用户键入时将字符替换为数字。。变得困难

谁能帮帮我吗。有正则表达式吗

$(文档).ready(函数(){
$('#id_number')。打开(“按键向上模糊”,函数(事件){
$('span.error-keyup-1').hide();
var inputVal=$(this.val();
//$(this.val($(this.val().replace(/[^0-9\.]/g');
var numericReg=/^(?:-\d{3}(?:-\d{7})(?:-\d{2});\d{2}(?:(?:-\d{2}){0,2})(?:-\d{3})(\d{2})$/gm;
如果(!数值示例测试(输入值)){
$(此).after('仅限数字字符,且模式应与“xxx-xxxxxxx-yy”或“xx-xx-xx-xxx”匹配');
}
});
});

这个正则表达式可以工作
/^\d{1,3}-\d{0,7}-\d{0,2}-\d{1,3}-\d{0,7}^\d{1,3}/
。另外,我会使用一个超时,这样您只能在用户停止键入后检查和替换字符

$(函数(){
var超时=0;
$(“#测试”).on('keyup blur',function(){
var e=$(本);
//取消查找,用户键入了另一个字符
clearTimeout(超时);
//当用户未键入其他密钥时,设置超时
//在设置的时间内,调用该函数
timeOut=setTimeout(函数(){
停止打字(e);
},300);//根据需要更改时间
});
});
函数停止键入(e){
e、 val(e.val().match(/^\d{1,3}-\d{0,7}-\d{0,2}| ^\d{1,3}-\d{0,7}| ^\d{1,3}/);
}

这个正则表达式可以工作
/^\d{1,3}-\d{0,7}-\d{0,2}-\d{1,3}-\d{0,7}^\d{1,3}/
。另外,我会使用一个超时,这样您只能在用户停止键入后检查和替换字符

$(函数(){
var超时=0;
$(“#测试”).on('keyup blur',function(){
var e=$(本);
//取消查找,用户键入了另一个字符
clearTimeout(超时);
//当用户未键入其他密钥时,设置超时
//在设置的时间内,调用该函数
timeOut=setTimeout(函数(){
停止打字(e);
},300);//根据需要更改时间
});
});
函数停止键入(e){
e、 val(e.val().match(/^\d{1,3}-\d{0,7}-\d{0,2}| ^\d{1,3}-\d{0,7}| ^\d{1,3}/);
}

我认为您需要将代码分成两个事件:
blur
keyup/keypress

blur
的正则表达式正在验证整个输入:

允许用户输入任何数字和“连字符数字”组的
keyup/keypress
事件的正则表达式:


我认为您需要将代码分成两个事件:
blur
keyup/keypress

blur
的正则表达式正在验证整个输入:

允许用户输入任何数字和“连字符数字”组的
keyup/keypress
事件的正则表达式:


看看这个。。另一种方法。。而且效果很好!:)

$(文档).ready(函数(){
$('#id_number')。打开(“键控模糊”,函数(事件){
$('span.error-keyup-1').hide();
var inputVal=$(this.val();
变量长度=inputVal.length;
变量字母=/[^0-9-]/gm;
if(字母测试(输入值)){
$(this.val($(this.val().replace(/[^0-9-]/g');
}
var buff=“xxxxxxxxxxxxx”;
inputVal=inputVal+buff;
inputVal=inputVal.substr(0,15);
var numericReg=/^([x\d]{3}[x-][x\d]{7}[x-][x\d]{3})$^(([x\d]{2}[x-]){3}[x\d]{3}[x-][x\d]{2})$/gm;
如果(!数值示例测试(输入值)){
$(this.val(inputVal.substr(0,长度-1))
$(此).after('仅限数字字符,且模式应与“xxx-xxxxxxx-yy”或“xx-xx-xx-xxx”匹配');
}
});
});

看看这个。。另一种方法。。而且效果很好!:)

$(文档).ready(函数(){
$('#id_number')。打开(“键控模糊”,函数(事件){
$('span.error-keyup-1').hide();
var inputVal=$(this.val();
变量长度=inputVal.length;
变量字母=/[^0-9-]/gm;
if(字母测试(输入值)){
$(this.val($(this.val().replace(/[^0-9-]/g');
}
var buff=“xxxxxxxxxxxxx”;
inputVal=inputVal+buff;
inputVal=inputVal.substr(0,15);
var numericReg=/^([x\d]{3}[x-][x\d]{7}[x-][x\d]{3})$^(([x\d]{2}[x-]){3}[x\d]{3}[x-][x\d]{2})$/gm;
如果(!数值示例测试(输入值)){
$(this.val(inputVal.substr(0,长度-1))
$(此).after('仅限数字字符,且模式应与“xxx-xxxxxxx-yy”或“xx-xx-xx-xxx”匹配');
}
});
});


karthik抱歉。。我接受了@Stribizev的回答,因为他在谈话中帮我学到了一些东西。。他的回答也没有错。。但我用了你的逻辑没关系。。很高兴知道你用了我的逻辑……)karthik对不起。。我接受了@Stribizev的回答,因为他在谈话中帮我学到了一些东西。。他的回答也没有错。。但我用了你的逻辑没关系。。很高兴知道你用了我的逻辑……)
^(?:\d{3}-\d{7}-\d{2}|\d{2}(?:-\d{2}){2}-\d{3}-\d{2})$)
^(?!.*-{2})\d+(?:-(?:\d+)?)*$