如果&#39; - &#39;我正在尝试使用正则表达式来匹配在字符串的末尾。 这是我的正则表达式的一部分(这是查看网址的域名部分,它在开头或结尾都没有符号,但可以在字符串中间有&#39; - &#39;:< / p>
(([A-Z0-9])([A-Z0-9-]){0,61}([A-Z0-9]?)[\.]){1,8}
这也必须匹配1个字符的域名 - 这就是我的原因?在最后的角色&amp;中心部分为0,61。
因此,简而言之,有一个正则表达式代码可以防止匹配&#39; - &#39;如果它在字符串的末尾?如果你可以阻止它开始,那么这也会很棒。
匹配输入:网站。
输入无效:-site。或网站 - 。
答案 0 :(得分:1)
简而言之,有一个正则表达式代码,以防止匹配' - '如果它在字符串的末尾?如果你可以阻止它开始,那么这也会很棒。
是的,你可以使用负向前瞻:
/^(?!-|.*(\.[.-]|-\.|-$))(?:[A-Z0-9-]{0,62}\.){1,8}[A-Z0-9]{3}$/gim
答案 1 :(得分:0)
尝试:
^(([A-Z0-9^-])([A-Z0-9-]){0,61}([A-Z0-9]?)[\.^-]){1,8}$
我不是100%肯定它可以与JS正则表达式一起使用。我的想法是:^
匹配字符串的开头,$
匹配结束,字符类中的^-
表示“任何不是连字符”。