小编Sco*_*ott的帖子

正则表达式:解析GitHub用户名(JavaScript)

我试图从一段文本中解析GitHub用户名(以@开头),以便将它们链接到相关的配置文件.

GitHub用户名约束是:

  • 带单个连字符的字母数字(没有连续的连字符)
  • 不能以连字符开头或结尾(如果以连字符结尾,只需将所有内容匹配到那里)
  • 最大长度为39个字符.

例如,以下文字:

示例@valid hello @ valid-username:@ another-valid-username,@ -invalid @ in - valid @ ignore-last-dash- an@email.com @ another-valid?

剧本...

应该匹配:

  • @有效
  • @有效户名
  • @另一化有效的用户名
  • @在
  • @忽略 - 最后冲刺
  • @另一个-有效

应该忽略:

  • @-无效
  • an@email.com

我通过使用以下方式与JavaScript合理地接近:

/\B@((?!.*(-){2,}.*)[a-z0-9][a-z0-9-]{0,38}[a-z0-9])/ig
Run Code Online (Sandbox Code Playgroud)

但这不是用户名与单个字符匹配(例如@a).

以下是我的测试:https://regex101.com/r/rZ5eW1/2

目前的正则表达式是否有效?我如何匹配单个非连字符?

javascript regex github

6
推荐指数
1
解决办法
1735
查看次数

标签 统计

github ×1

javascript ×1

regex ×1