2013-04-24 129 views

回答

2

如果您在数量预计破折号(其中您的格式显示),有没有在你的正则表达式匹配它:是否是正则表达式中的第二个加号?

^\+[0-9]{2,3}-[0-9]\d{10} 

还要注意的是:

  1. 一些国家代码是单个数字(如1用于北美,7俄罗斯),这将不匹配
  2. 我怀疑当地部分到处都是手机总是10位(如:它不会在人口众多的国家有足够的移动所有权的增长)
+0

在法国,手机数字是9位数字。 – 2013-04-24 09:52:08

+0

我没有得到你..我想要简单的国家代码(1到3位数) - (10或9位数字) – 2013-04-24 09:56:08

+0

其nt采取任何正则表达式除[+ 91] .. m nt gtng wts the prb – 2013-04-24 09:59:50

1
\+[0-9]{2,3}-[0-9]+ 

试试这个。这符合在一开始就+,两个或三个数字的国家代码,然后是-后跟任意数量的数字

+0

thnx ..我试过bt nt wrkng – 2013-04-24 10:19:45

+0

你可能想添加一个额外的反斜杠的反斜杠,以便JavaScript将它看作一个文字反斜杠 – Savv 2013-04-24 11:48:30

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*可能的空间位置)比

其他:我热烈推荐掌握的正则表达式,因为它们在许多情况下非常方便。

+0

是的..我试过各种组合,但它的nt wrkng – 2013-04-24 10:05:36

+0

只要尝试提供正则表达式在浏览器的控制台中:''+ 49-1234567890'.match(/^\ + \ d {1,3} - \ d {9,10} $ /)'(Firefox:'Ctrl + shift + K') – Matyas 2013-04-24 10:09:43

+0

sm mk在这个patrn ..../^ \ + [0-9] {3} \ - [0-9] {10} $/ – 2013-04-24 11:35:09

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> 
0

你可以简单地写:

var pattern=/^(0|[+91]{3})?[7-9][0-9]{9}$/;