用于通配符域验证的正则表达式

时间:2014-10-10 14:45:58

标签: javascript regex

我是编写正则表达式的新手。我打算编写正则表达式来验证通配符域匹配。这是场景。

正确:

  • *.test.com
  • test.com
  • abc.test.com

不正确:

  • *test.com
  • test.com*
  • test.*.com
  • test.abc*.com

这是我上面的secnario

的正则表达式
/^(([a-zA-Z0-9]|\*\.[a-zA-Z0-9])([a-zA-Z0-9\-_]{0,243}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/

它按预期工作。我们可以改进或写出更好的表达吗?

1 个答案:

答案 0 :(得分:2)

^(\*\.)?([\w-]+\.)+[\w-]+$

匹配您的示例。 Demo 1

从我的观点来看,我也会将第三个反面例子视为正确。

^(([\w-]+\.)|(\*\.))+[\w-]+$

Demo 2

编辑:
您可能必须调整字符类以包含所有允许的字符。我想保持正则表达式易于阅读