我正在使用^(^[a-z]?[a0-z9]+[.|-][a0-z9]+[a-z]+[.|-][a0-z9]+[a-z]?$)+$
,这个强制用户在他的表达式中键入2个连字符( - )....
但是我需要正则表达式允许在他的表达中最多2个超级和最小的连字符....
答案 0 :(得分:2)
这是一个简单的重新实现。
/^[^-]+(-[^-]+){1,2}$/
测试结果:
"123".match(/^[^-]+(-[^-]+){1,2}$/)
null
"123-123".match(/^[^-]+(-[^-]+){1,2}$/)
["123-123", "-123"]
"123-123-123".match(/^[^-]+(-[^-]+){1,2}$/)
["123-123-123", "-123"]
"123-123-123-123".match(/^[^-]+(-[^-]+){1,2}$/)
null
如果你只是从别人那里复制一个,那么你应该试着自己写一个 如果没有,您应该将其删除并重新启动。
答案 1 :(得分:0)
^[^-]*-+[^-]*-{0,1}[^-]*$
String1:abc-pqr, String2:aaa-bbb, String3 aaa-bbb-ccc-ddd, 字符串1和2有效,3无效?
这允许字符串1和2.但不允许3。
答案 2 :(得分:0)
这个正则表达式应该有用......
/^[^-]*-[^-]*-[^-]*$/
它的工作原理是捕获除连字符(零次或多次)以外的任何内容,然后是连字符,然后是其他任何内容,然后是另一个连字符,然后是其他任何内容。它有一个开始和结束标记,以确保整个字符串不再包含连字符。
像这样分解......
/ # begin regex
^ # start of string
[^-]* # not hyphen ([^-]), zero or more times (*)
- # hyphen
[^-]* # not hyphen ([^-]), zero or more times (*)
- # hyphen
[^-]* # not hyphen ([^-]), zero or more times (*)
$ # end of string
/ # end regex