使用javascript正则表达式验证手机号码

使用javascript正则表达式验证手机号码,javascript,regex,Javascript,Regex,以下是我的代码: <html> <title>Validate Phone Number</title> <head> <script> function testnumber() { var ph = new RegExp("^[789]\d{9}$"); num = {10 digit phone number} alert(ph.test(num)); } testnumber(); </script

以下是我的代码:

<html>
<title>Validate Phone Number</title>
<head>
<script>
function testnumber() {
    var ph = new RegExp("^[789]\d{9}$");
    num = {10 digit phone number}
    alert(ph.test(num));
}
testnumber();
</script>
</head>
<body>
</body>
</html>

验证电话号码
函数testnumber(){
var ph=newregexp(“^[789]\d{9}$”;
num={10位电话号码}
警报(ph试验(num));
}
testnumber();
我想验证手机号码,它以7/8/9开头,是10位数字。 但它会对输入的任何电话号码发出false警报

请告诉我哪里出了问题。
提前感谢。

试试这个,你的格式有点不正确:

function testnumber() {
    var ph = new RegExp(/^[789]\d{9}$/);
    num = 7123435498; // example number
    alert(ph.test(num));
}
testnumber();

尝试此操作,您的格式设置有点不正确:

function testnumber() {
    var ph = new RegExp(/^[789]\d{9}$/);
    num = 7123435498; // example number
    alert(ph.test(num));
}
testnumber();

您现有的正则表达式无法工作,原因如下

字符串文本中的
\d
计算为
d

因此,您可以采取以下两种方法

1)试试这个

var ph = new RegExp("^[789]{1}[0-9]{9}$");
var num = "7894543542";
console.log( ph.test(num) ); //true
  • ^
    匹配字符串的开头
  • [789]
    匹配7、8或9中的一个
  • [0-9]{9}
    匹配9位数字
  • $
    匹配字符串的结尾
2)如果传递的是正则表达式文本而不是字符串,则正则表达式也可以正常工作

var ph = new RegExp(/^[789]\d{9}$/);
var num = "7894543542";
ph.test(num); //true

您现有的正则表达式无法工作,原因如下

字符串文本中的
\d
计算为
d

因此,您可以采取以下两种方法

1)试试这个

var ph = new RegExp("^[789]{1}[0-9]{9}$");
var num = "7894543542";
console.log( ph.test(num) ); //true
  • ^
    匹配字符串的开头
  • [789]
    匹配7、8或9中的一个
  • [0-9]{9}
    匹配9位数字
  • $
    匹配字符串的结尾
2)如果传递的是正则表达式文本而不是字符串,则正则表达式也可以正常工作

var ph = new RegExp(/^[789]\d{9}$/);
var num = "7894543542";
ph.test(num); //true

您也可以尝试此
HTML
唯一选项


电话号码:

您也可以尝试此
HTML
唯一选项


电话号码:

我想你会发现正则表达式测试仪非常有用,如well@3Dos测试员给我匹配的字符串。但在相同输入的代码中得到false警报要在字符串文本中定义
\
,必须使用两个反斜杠。这是一个太常见的问题。我想你会发现一个正则表达式测试仪非常有用well@3Dos测试员给我匹配的字符串。但在相同输入的代码中得到false警报要在字符串文本中定义
\
,必须使用两个反斜杠。这是一个非常普遍的问题。这很有效。(y)Thanks@YashParekh请标记为正确答案:)这有效。(y)Thanks@YashParekh请记为正确答案:)太酷了。谢谢,太酷了。谢谢