Javascript 数字格式的Java脚本正则表达式不起作用
我想从用户那里获得输入,即888-999-6666。3个数字,然后是一个“-”,然后是3个数字,然后是“-”,最后是4个数字。 我在JavaScript中使用以下正则表达式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
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}$/;