我正在尝试为以下模式编写正则表达式,但我的做法不正确。你能帮我么?基本上模式就像域\用户名。域应接受字母数字加 - 作为特殊字符,用户名应仅包含字母数字字符。域模式后应该有\。正则表达式应该在 JavaScript 中,使用 String.match() 方法。
示例:
Desktop-123\john123
Desktop123\john1
Desktop123\john
Desktop-123\john
正则表达式:
/^[a-zA-Z0-9-]+\[a-zA-Z0-9]$/
答案 0 :(得分:1)
如果域名不能只包含 -
,您可以先匹配 1+ 个字母数字字符,并可选择重复一个 -
后跟 1+ 个字母数字字符。
注意要重复字符类 1 次或多次,否则您将匹配单个字符。
^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\\[a-zA-Z0-9]+$
^
字符串开头[a-zA-Z0-9]+
匹配 1+ 次字符类中列出的任何一个(?:-[a-zA-Z0-9]+)*
(可选)重复 -
和字符类中列出的任何一个\\[a-zA-Z0-9]+
匹配 \
并再次匹配字符类中列出的任何字符的 1 次以上$
字符串结束