[英]How to write this regexp?
我正在验证的字段可能不是数字,而是数字,但可能包含空格或减号。
这是用于验证电话号码字段! 因此,应该满足以下条件:(可能忘记了条件,请提醒我)
1- Atleast 5 numbers
2- May contain space
3- Not shorter than 5 characters
4- Not longer than 20 characters
5- May contain minus-sign
6- Not empty
if (nr.length>4 && nr.length<21 && nr!=''){
}
我应该如何编写正则表达式? 还是if语句?
谢谢
试试这个正则表达式:
^(?=(?:\D*\d){5})[\d -]{5,20}$
前瞻断言(?=(?:\\D*\\d){5})
测试五个数字。 其余测试的长度至少为5个字符,最多为20个字符,只能是数字,空格或连字符。
nr != ''
条件是多余的,因为长度比较已经排除了零长度。
因此,在不进行长度比较的情况下,您似乎只能使用数字,空格和破折号的简单字符类了:
/[\d\s-]{5,20}/
当然,这允许类似-----或一堆空格的事情。 因此,也许您想先删除所有不是数字的内容,然后再检查
/\d{5,20}/
这可能会更简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.