在下面的代码中,我有一个电话号码字段,我想要达到的目的是确保每个号码都是15位数,并确保如果输入多个电话号码(以逗号分隔)(请参阅要了解的代码),也是15位数。
$("#btn").on('click',function(){
var regrExpr = new RegExp("^(?=\S{10,}$)(?=.*\d{15},?).*");
//var regrExpr = new RegExp("\d{15}(?:,\d{15})*");
//var regrExpr = new RegExp("\d{10,15}(?:,\d{10,15})*");
//var regrExpr = new RegExp("^(\d{15}[,]{0,1})+$");
//var regrExpr = new RegExp("^\+\d{10,15}(,\+\d{10,15})*$");
//var regrExpr = new RegExp("^(?=\S{10,}$)(?=.*\d{15},?).*");
if (!regrExpr.test($("#txt").val()))
{
alert("Please Enter No");
return false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="tel" id="txt" style="width:300px">
<button id = "btn">Check</button>
Regex'ically,我需要这样的东西:
~^[0-15]{15}(?:,[0-15]{15})*$~
但是,它在我的情况下不起作用。
答案 0 :(得分:1)
这是您案例的正常表达。
^\+\d{10,15}(,\+\d{10,15})*$
答案 1 :(得分:1)
我相信最好的正则表达式
^(?=\S{10,}$)(?=.*\d{15},?).*
查看here
上的演示这里
(?=\S{10,}$)
确保字符串至少为10长度
(?=.*\d{15},?)
负责匹配,如果数字长度为15且以逗号分隔
答案 2 :(得分:0)
使用/.../
表示法来定义正则表达式:
$("#btn").on('click',function(){
var regrExpr = /^\d{15}(?:,\d{15})*^/;
if (!regrExpr.test($("#txt").val())) {
console.log("Invalid number, retry");
return false;
} else {
console.log("All correct")
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="tel" id="txt" style="width:300px">
<button id = "btn">Check</button>
答案 3 :(得分:0)
最后我找到了解决方案 检查此答案
var pattern = /^(?:\s*\d{15}\s*(?:,|$))+$/;
if(pattern.test($("#txt").val())){
alert("Correct");
} else {
alert("Wrong");
}
``