Javascript 如何编写这个regexp?
我正在验证一个字段,该字段可能不是数字,但可能包含空格或减号 这是用于验证电话号码字段! 因此,这些标准应该得到满足:(可能忘记了一个标准,如果是的话,提醒我)Javascript 如何编写这个regexp?,javascript,html,forms,validation,Javascript,Html,Forms,Validation,我正在验证一个字段,该字段可能不是数字,但可能包含空格或减号 这是用于验证电话号码字段! 因此,这些标准应该得到满足:(可能忘记了一个标准,如果是的话,提醒我) 1-至少5个数字 2-可能包含空间 3-不少于5个字符 4-不超过20个字符 5-可能包含减号 6-不是空的 如果(nr.length>4&&nr.length尝试此正则表达式: ^(?=(?:\D*\d){5})[\d -]{5,20}$ 先行断言(?=(?:\D*\D{5})测试五位数字。其余的测试长度至少为5个字符,最多为20个
1-至少5个数字
2-可能包含空间
3-不少于5个字符
4-不超过20个字符
5-可能包含减号
6-不是空的
如果(nr.length>4&&nr.length尝试此正则表达式:
^(?=(?:\D*\d){5})[\d -]{5,20}$
先行断言(?=(?:\D*\D{5})
测试五位数字。其余的测试长度至少为5个字符,最多为20个字符,只能是数字、空格或连字符。由于长度比较已排除长度为零,因此nr!='
条件是多余的
因此,在不进行长度比较的情况下,看起来您只需要一个简单的字符类,包括数字、空格和破折号:
/[\d\s-]{5,20}/
当然,这允许像------或一堆空格这样的东西。所以,也许你想先删除所有不是数字的东西,然后检查是否有空格
/\d{5,20}/
这可能会更简单。+1,谢谢你把我打败了。我也正要打回车!:)你没有错过减号吗?
/\d{5,20}/