Javascript 包含if-else表达式的商务电话正则表达式
我正在尝试用javascript编写商业电话号码正则表达式,我的要求是:Javascript 包含if-else表达式的商务电话正则表达式,javascript,regex,Javascript,Regex,我正在尝试用javascript编写商业电话号码正则表达式,我的要求是: 它应该只包含数字、破折号和空格 它不应该以-结尾,但可以以空格结尾 两组之间应该只有1个- 它应该匹配带和不带-的数字,如1,123,678-78 我尝试过使用正则表达式,但是对于123--它失败了,因为它是无效的,任何人请给我一些建议 /^([ ]*[0-9]+[-]?[0-9 ]*?([-])[ ]*[0-9]+[ ]*|[0-9 ]*[ ]*)+$/.test('123--2') 试试这个 /^[0-9]+(-
- 它应该只包含数字、破折号和空格
- 它不应该以
结尾,但可以以空格结尾-
- 两组之间应该只有1个
-
- 它应该匹配带和不带
的数字,如-
,1
,123
678-78
123--
它失败了,因为它是无效的,任何人请给我一些建议
/^([ ]*[0-9]+[-]?[0-9 ]*?([-])[ ]*[0-9]+[ ]*|[0-9 ]*[ ]*)+$/.test('123--2')
试试这个
/^[0-9]+(-[0-9\s]+)*$/
我不知道您是否仍然需要对此问题的答案,但这符合您的要求:
/^(?!.+-\s*$)\s*((?:\d+\s*-?\s*)+)$/
说明:
字符串的开头^
不允许字符串末尾出现(?!.+-\s*$)
(或-
,后跟空格)-
可选前导空格\s*
开始捕获(
以下一组或多组:(?:\d+\s*-?\s*)+
- 一个或多个数字
- 后面可能是空白
- 可能后跟一个连字符
- 后面可能有更多的空格
停止捕获)
字符串的结尾$
它也不应该以“
-
”结尾,对吗?@Pumbaa80是的,它不应该以-@Pumbaa80结尾,你能告诉我我在中做了什么错事吗?(exp)是的|没有部分?@Pumbaa80它返回false表示“1”,我的要求是它应该是真的