【发布时间】:2018-06-14 09:49:39
【问题描述】:
我正在尝试构建一个正则表达式,它接受具有以下条件的域名:
- 允许 DNS 名称(仅允许使用连字符、句点和字母数字字符)最多 255 个字符。
- 连字符只能出现在字母之间
- 应以字母开头并以字母结尾。它至少有 3 个字符(字母和句点是必需的,连字符是可选的。)
- 句点前的标签长度应为63
可能的情况:
- a.b.c
- a-a.b
不应通过的案例
- a-.b
- qwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwerhhg.v
- 啊啊啊
- aaa-a
我构建的东西是这样的:
^(([a-zA-z0-9][A-Z0-9a-z-]{1,61}[a-zA-Z0-9][.])+[a-zA-Z0-9]+)$
但这不接受a.b.c
【问题讨论】:
-
A-z是一个错字,你需要使用A-Z。 -
应该在一段时间后接受任意数量的字符。当我在点后添加超过 63 个字符时失败。你能更新@WiktorStribiżew
-
你可能想要regex101.com/r/C7dZWz/5。请注意,在最后一个
.之后它已经允许任意数量的字符 -
见下面的解释。