Javascript 为复杂验证编写正则表达式

Javascript 为复杂验证编写正则表达式,javascript,Javascript,我必须验证一个可以 以数字或字母开始和结束 只能包含小写字母、数字、破折号()、下划线()和点 必须包含3到63个字符。包含点的名称最多可以包含222个字符,但每个点分隔的组件不能超过63个字符 不能是IP地址 不能以前缀“AABRA”开头 我写了一些表达式,但它只验证以字母和数字开头的字符串,该字符串只能包含上面列出的特殊字符 ^[a-z0-9][-_. a-z0-9]+[a-z0-9]$ 但是如何验证像“abc.bys.123123”这样的字符串,其中之间的单词长度应该在3到63之间,请尝

我必须验证一个可以

  • 以数字或字母开始和结束
  • 只能包含小写字母、数字、破折号()、下划线()和点
  • 必须包含
    3
    63
    个字符。包含点的名称最多可以包含222个字符,但每个点分隔的组件不能超过63个字符
  • 不能是IP地址
  • 不能以前缀“AABRA”开头
  • 我写了一些表达式,但它只验证以字母和数字开头的字符串,该字符串只能包含上面列出的特殊字符

    ^[a-z0-9][-_. a-z0-9]+[a-z0-9]$
    
    但是如何验证像
    “abc.bys.123123”
    这样的字符串,其中
    之间的单词长度应该在3到63之间,请尝试下面的正则表达式

    ^([a-z\d][-.[a-z0-9]([a-z\d]+){3,63}$

    测试了你提到的案例


    对于m到n的重复,使用{m,n}。所以正则表达式应该是
    ^[a-z0-9][-\uz.a-z0-9]{3,63}[a-z0-9]$

    编辑:不完全是你想要的。但这应该有助于正确的实施。
    要学习正则表达式,请尝试这个

    是否确实有必要尝试将所有这些都塞进一个正则表达式中?regex是那种环境中唯一可用的东西吗?或者你能做一些额外的JS编码吗?{3,63}在3到63个字符之间,有一个类似的表达式可以表达多达222个字符。我不明白“包含点的名称最多可以包含222个字符”以及字符串“必须包含3到63个字符”。字符串的总长度不应超过222个字符。字符串“aaaaaaaaaa.bbbbbbbbb.ccccccccccccc”,这里子字符串aaa或bbb或ccccccc的长度应在3到63之间,但总长度应最大为222。这更清楚。你能回答@04FS的问题吗?由于某些原因,您只能使用正则表达式模式,或者也可以使用javascript?“try this”不是解决方案的有用解释。正则表达式不会验证点(.)之间的子字符串长度,例如“aaaaaaaaaaaaaaaaaaaaaa.bbbbbb uu-bbbbbbbb.cccccc”。在本例中,子字符串“aaaaa”可以包含63个以上的字符。