Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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
如何在JavaScript中检查目前输入的正则表达式是否正确?_Javascript_Regex - Fatal编程技术网

如何在JavaScript中检查目前输入的正则表达式是否正确?

如何在JavaScript中检查目前输入的正则表达式是否正确?,javascript,regex,Javascript,Regex,函数regExChecker(str){ 常量结果=(/^\w{3}(SQ|MI)[0-9]{5}$/i); 返回结果; } 控制台日志(regExChecker(“ABCSQ12345”)) 日志(regExChecker(“XYZMI32134”)) console.log(regExChecker(“ABCSQ”))可能这就是您正在寻找的验证: var regex1=/^\w{3}(sq|mi)\d{5}$/i; 变量regex2=/^(\w{1,3}|$)([sm]|$)([qi]|$

函数regExChecker(str){
常量结果=(/^\w{3}(SQ|MI)[0-9]{5}$/i);
返回结果;
}
控制台日志(regExChecker(“ABCSQ12345”))
日志(regExChecker(“XYZMI32134”))

console.log(regExChecker(“ABCSQ”))
可能这就是您正在寻找的验证:

var regex1=/^\w{3}(sq|mi)\d{5}$/i;
变量regex2=/^(\w{1,3}|$)([sm]|$)([qi]|$)\d{0,5}$/i;
$('#toptid').keyup(函数(){
var ptIds=$(“#toptid”).val();
if(正则表达式2.测试(PTID)){
$('.toptorror')。文本(“”);
}否则{
$('.toptorror').text(“无效模式”);
}
});
$('#toptid').focusout(函数(){
var ptIds=$(“#toptid”).val();
if(正则表达式1.测试(PTID)){
$('.toptorror')。文本(“”);
}否则{
$('.toptorr').text(“输入错误”);
}
});

图案*

对于部分映射,您可以检查它,直到最后它仍然遵循模式。您可以做的是在每个模式之后添加和结束检查

const check=str=>(/^(\w{0,3}}}$)((S}$)(Q}$)(M}$)(I}$)([0-9]{0,5}$)/I)测试(str);
控制台日志(检查(“ABCSQ12345”);
控制台日志(检查(“ABCSQ”);
控制台日志(检查(“AB”);
控制台日志(检查(“AB12”));

控制台日志(检查(“ABCSM”)
您可以将您的正则表达式设置为
/^\w{3}(SQ | MI)([0-9]{5})$/i
,通过添加
将0-5位设置为可选,还可以将其括在括号中,因为您希望捕获它

const regex=/^\w{3}(SQ|MI)([0-9]{5})$/i;
const case1=‘ABCSQ12345’;
常数case2='XYZMI32134';
const case3='ABCSQ';
const case4=‘不相关的东西’;
让结果;
if(result=case1.match(regex)){
//它将进入并捕获“12345”
常数捕获=结果[2];
log('case1:',capture);
}
if(result=case2.match(正则表达式)){
//它将进入并捕获“32134”
常数捕获=结果[2];
log('case2:',capture);
}
if(result=case3.match(正则表达式)){
//它也将进入,但捕获为空
常数捕获=结果[2];
log('case 3:',capture);
}
if(result=case4.match(regex)){
//它将不会在这里输入,因为给定的字符串与模式不匹配
常数捕获=结果[2];
log('case 4:',capture);

}
但它仍然与ABCSQ12345的整个字符串匹配。不是吗?你的观点是什么?在同一字符串中匹配两次?解释你想要什么和不想要什么