我想要格式化的手机号码 +91(或任何其他国家代码)-9999999999(10位数手机号码)。
我已经尝试了/^\+[0-9]{2,3}+[0-9]\d{10}
,但它不起作用请帮助
提前致谢
答案 0 :(得分:6)
简而言之:
// should return an array with a single match representing the phone number in arr[0]
var arr = '+49-1234567890'.match(/^\+\d{1,3}-\d{9,10}$/);
// should return null
var nullVal = 'invalid entry'.match(/^\+\d{1,3}-\d{9,10}$/);
更长的解释:
/
启动正则表达式^
尝试从头开始匹配\+
匹配+号\d{1,3}
匹配数字1至3次-
匹配破折号\d{9,10}
匹配9或10位数字$
强制匹配仅在字符串终止时才能应用/
完成正则表达式了解正则表达式的作用,可以让您根据自己的需要进行修改
有时候忽略你遇到的任何空白是件好事。 \s*
匹配0或n个空格。因此,为了更加宽容,您可以让用户输入类似' + 49 - 1232345 '
与此匹配的正则表达式为/^\s*\+\s*\d{1,3}\s*-\s*\d{9, 10}\s*$/
(仅使用\s*
填充可能的空间位置)
除此之外:我热烈推荐掌握正则表达式,因为它们在很多情况下都非常方便。
答案 1 :(得分:2)
如果您期望数字中的短划线(您的格式显示),您的正则表达式中没有任何内容可以匹配它:正则表达式中的第二个加号意味着冲刺?
^\+[0-9]{2,3}-[0-9]\d{10}
另请注意:
答案 2 :(得分:1)
\+[0-9]{2,3}-[0-9]+
试试这个。这匹配开头的+
,国家/地区代码的两到三个数字,后跟-
后跟任意数量的数字
答案 3 :(得分:1)
使用遮罩功能
jQuery(function($){
$("#phone").mask("999-999-9999",{placeholder:" "});
});
答案 4 :(得分:1)
您可以简单地写下以下内容:
var pattern=/^(0|[+91]{3})?[7-9][0-9]{9}$/;
答案 5 :(得分:0)
对于移动验证,请尝试使用
<html>
<head>
<title>Mobile number validation using regex</title>
<script type="text/javascript">
function validate() {
var mobile = document.getElementById("mobile").value;
var pattern = /^[7-9][0-9]{9}$/;
if (pattern.test(mobile)) {
alert("Your mobile number : "+mobile);
return true;
}
alert("It is not valid mobile number");
return false;
}
</script>
</head>
<body>
Enter Mobile No. :
<input type="text" name="mobile" id="mobile" />
<input type="submit" value="Check" onclick="validate();" />
</body>
</html>