正则表达式适用于正则表达式测试程序,但不适用于模式

时间:2015-12-18 10:01:30

标签: javascript html regex html5

它非常简单,但在我看来奇怪的问题我基本上有这个正则表达式,并进入了一些测试,他们的工作。

(?=^\*)|(?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-\{\}]{1,63}\.?)+(?:[a-zA-Z\{\}]{1,})$)

https://regex101.com/r/hU6tP0/2

但是当我尝试在html中使用它时失败了。但如果我在javascript中测试它就可以了。

http://jsfiddle.net/ek6kby2q/9/

我对正则表达式一无所知,所以也许有人知道出了什么问题,或者有任何提示让正则表达式变得更好是受欢迎的。

1 个答案:

答案 0 :(得分:3)

作为html属性,模式必须匹配从开头到结尾的所有字符串,这就是(?=^\*)无法执行此操作的原因,因为它匹配零个字符。

请改用此模式:

\*.*|(?!.{255})(?:[A-Za-z_{}-][\w{}-]{0,62}\.?)+[A-Za-z{}]+

(您可以省略锚点,因为它们是隐式的)