Javascript 数字格式的Java脚本正则表达式不起作用

Javascript 数字格式的Java脚本正则表达式不起作用,javascript,regex,Javascript,Regex,我想从用户那里获得输入,即888-999-6666。3个数字,然后是一个“-”,然后是3个数字,然后是“-”,最后是4个数字。 我在JavaScript中使用以下正则表达式 var num1=/^[0-9]{3}+-[0-9]{3}+-[0-9]{3}$/; if(!(form.num.value.match(num1))) { alert("Number cannot be left empty"); return

我想从用户那里获得输入,即888-999-6666。3个数字,然后是一个“-”,然后是3个数字,然后是“-”,最后是4个数字。 我在JavaScript中使用以下正则表达式

     var num1=/^[0-9]{3}+-[0-9]{3}+-[0-9]{3}$/;
  if(!(form.num.value.match(num1)))
           {
           alert("Number cannot be left empty");
           return false;
           }
但它不起作用。 如果我使用
var num1=/^[0-9]+-[0-9]+-[0-9]$/则它至少需要两个“-”,但对数字没有限制


我怎样才能得到符合我要求的RE?为什么上面的代码不起作用?

删除重复量词
{}
后面出现的
+
符号。并将最后一个
[0-9]{3}
替换为
[0-9]{4}
,以便在最后一个
-
符号后只允许4位数字

var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/;

您也可以将
[0-9]
写成
\d

您的正则表达式应该是:

var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/;

在您的正则表达式中的数字范围之后还有一个额外的
+

问题。请检查下面的示例

var num='888-999-6668';
var num1=/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/;
如果(!(num.match(num1)))
{
警报(“编号不能为空”);
}否则{
警报(“匹配”);
}
我想这对你有用。
代码的其余部分将是相同的。

var num1=/^[0-9]{3}+-[0-9]{3}+-[0-9]{3}$/最后一个符号类附近的打字错误?你的意思是说
{4}
{}
之后的@SergeyLagutin
+
就像是一个所有格量词,php支持它,但js不支持它t@AvinashRaj谢谢你的解释!
var num1=/^\d{3}-\d{3}-\d{4}$/;