Javascript 带或不带国家/地区代码的手机号码的正则表达式
我需要在我的注册表中验证一个文本字段,我想要一个正则表达式 文本框将接受类似9999999999的手机号码(10位数字-从7、8或9开始)。 用户也可以写入+919999999,其中+91是国家代码(+91代表印度,但可以接受任何其他类似+110或+52),或者他也可以写入099999999(前0代表本国) 在这里,用户有3个选择Javascript 带或不带国家/地区代码的手机号码的正则表达式,javascript,regex,validation,Javascript,Regex,Validation,我需要在我的注册表中验证一个文本字段,我想要一个正则表达式 文本框将接受类似9999999999的手机号码(10位数字-从7、8或9开始)。 用户也可以写入+919999999,其中+91是国家代码(+91代表印度,但可以接受任何其他类似+110或+52),或者他也可以写入099999999(前0代表本国) 在这里,用户有3个选择 添加带有国家/地区代码的手机号码 不带国家/地区代码或前缀0 手机号码的前缀为零 虽然不是必需的,但我的页面在asp.net中,我正在使用内置的正则表达式验证器。这应
虽然不是必需的,但我的页面在asp.net中,我正在使用内置的正则表达式验证器。这应该可以做到:
^(\+[\d]{1,5}|0)?[7-9]\d{9}$
从我看来,这应该行得通。前缀是可选的,存储在第一个匹配组中,主编号进入第二个组
^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$
但是如果你能给我们每个测试用例,它将帮助我们为你提供一个你想要的工作正则表达式
在评论中向Schlaviener推荐正确的国家代码长度限制。if(document.getElementById('mobile_number')。value!=“”){
if(document.getElementById('mobile_number').value != ""){
var y = document.getElementById('mobile_number').value;
if(isNaN(y)||y.indexOf(" ")!=-1)
{
alert("Invalid Mobile No.");
document.getElementById('mobile_number').focus();
return false;
}
if (y.length>10 || y.length<10)
{
alert("Mobile No. should be 10 digit");
document.getElementById('mobile_number').focus();
return false;
}
if (!(y.charAt(0)=="9" || y.charAt(0)=="8"))
{
alert("Mobile No. should start with 9 or 8 ");
document.getElementById('mobile_number').focus();
return false
}
}
var y=document.getElementById('mobile_number')。值;
if(isNaN(y)| y.indexOf(“”)=-1)
{
警报(“无效手机号码”);
document.getElementById('mobile_number').focus();
返回false;
}
如果(y.length>10 | | y.length,也可以使用字符串操作来完成。请检查此项
结果将是印度移动号码验证的简单regexp:/^[0]?[789]\d{9}$/
支持
0888888888(零附加)
78863445687699545559877(任何手机号码前面加7,8,9,后面加其他9位数字)
全功能
function mobileNumber(){
var Number = document.getElementById('YOUR ELEMENT ID').value;
var IndNum = /^[0]?[789]\d{9}$/;
if(IndNum.test(Number)){
return;
}
else{
$('#errMessage').text('please enter valid mobile number');
document.getElementById('profile_telephoneNumber').focus();
}
}
请尝试以下操作:
function validateMobile(mobilenumber) {
var regmm='^([0|+[0-9]{1,5})?([7-9][0-9]{9})$';
var regmob = new RegExp(regmm);
if(regmob.test(mobilenumber)){
return true;
} else {
return false;
}
}
这也将匹配+12345679999999
)@schlaviener是-他没有指定任何类型的区号有效时间限制,所以我只是将其保留为“在+”之后至少有一个数字。将第一部分更改为^([0 | \+[0-9]{123456})?
并将123
替换为最小长度,将456
替换为最大长度将解决这一问题,好的,谢谢,@schlaviener和Joe再次更新,Joe是正确的,我没有提到最大/最小尺寸,但我确实需要它。所以,干杯……你是对的,他没有指定限制。但是wikipedia:所以它应该是\d{1,5}
无论任何特定的国家代码,这个^([0}\+[0-9]{1,5})([0-9]{10})$
也适用于通用电话号码并非所有的手机号码都以7、8或9开头。我的手机号码也不是以4开头的。它们也不是都是10位数字,我的手机号码是9。对于regex后面的印度手机号码也适用^[6-9]{9}$
如果(!/^[6-9]\d{9}$/.test(mobile_no)){//Error code here}
你能给你的答案添加一些解释吗?虽然这段代码可以回答问题,但解释/支持它总是很好的。
function validateMobile(mobilenumber) {
var regmm='^([0|+[0-9]{1,5})?([7-9][0-9]{9})$';
var regmob = new RegExp(regmm);
if(regmob.test(mobilenumber)){
return true;
} else {
return false;
}
}