正则表达式匹配模式域\用户名

时间:2020-12-29 08:49:27

标签: javascript regex

我正在尝试为以下模式编写正则表达式,但我的做法不正确。你能帮我么?基本上模式就像域\用户名。域应接受字母数字加 - 作为特殊字符,用户名应仅包含字母数字字符。域模式后应该有\。正则表达式应该在 JavaScript 中,使用 String.match() 方法。

示例:

Desktop-123\john123
Desktop123\john1
Desktop123\john
Desktop-123\john

正则表达式:

/^[a-zA-Z0-9-]+\[a-zA-Z0-9]$/

1 个答案:

答案 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 次以上
  • $ 字符串结束

Regex demo

相关问题