Javascript 用于通配符域验证的正则表达式
我对编写正则表达式还不熟悉。我计划编写正则表达式来验证通配符域匹配。下面是一些场景 正确:Javascript 用于通配符域验证的正则表达式,javascript,regex,Javascript,Regex,我对编写正则表达式还不熟悉。我计划编写正则表达式来验证通配符域匹配。下面是一些场景 正确: *.test.com test.com abc.test.com 不正确: *test.com test.com* test.*.com test.abc*.com 这是我的正则表达式 /^(([a-zA-Z0-9]|\*\.[a-zA-Z0-9])([a-zA-Z0-9\-_]{0,243}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/ 它正在按预期工作。我们能改进或写出更好
*.test.com
test.com
abc.test.com
*test.com
test.com*
test.*.com
test.abc*.com
/^(([a-zA-Z0-9]|\*\.[a-zA-Z0-9])([a-zA-Z0-9\-_]{0,243}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/
它正在按预期工作。我们能改进或写出更好的表达方式吗
^(\*\.)?([\w-]+\.)+[\w-]+$
符合你的例子。
从我的观点来看,我也认为第三个反面例子是正确的
^(([\w-]+\.)|(\*\.))+[\w-]+$
编辑:您可能必须调整字符类以包含所有允许的字符。我想让正则表达式易于阅读为了改进您的正则表达式,请告诉我们规则谢谢您的回复。它适用于上述所有场景。我忘了在我的问题中提到-1.它的最大长度应该是250。2.它不应该允许下划线(41; 3。它应该允许连字符(-)
\d
已经包含在\w
中,因此[\w\d]+
与\w+
@M42相同。好的,然后我回忆起错误的事情。我改编了它,thanx@JavaP添加了连字符