Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写这个regexp?_Javascript_Html_Forms_Validation - Fatal编程技术网

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}/