Javascript 正则表达式不允许使用连续的点字符和更多字符

Javascript 正则表达式不允许使用连续的点字符和更多字符,javascript,regex,Javascript,Regex,我试图创建一个JavaScript正则表达式,它满足以下条件 a-z是可能的 0-9是可能的 破折号、下划线、撇号和句号都可以 不能使用符号AND、括号、逗号和加号 连续的周期是不可能的 期间不能位于起始和结束位置 最多64个字符 到目前为止,我一直在关注正则表达式 ^[^.][a-zA-Z0-9-_\.']+[^.]$ 但是,这允许中间的连续点字符,并且不检查长度。 有谁能指导我如何添加这两个条件吗?以下是一个似乎有效的模式: ^(?!.*\.\.)[a-zA-Z0-9_'-](?:[a-z

我试图创建一个JavaScript正则表达式,它满足以下条件

a-z是可能的 0-9是可能的 破折号、下划线、撇号和句号都可以 不能使用符号AND、括号、逗号和加号 连续的周期是不可能的 期间不能位于起始和结束位置 最多64个字符 到目前为止,我一直在关注正则表达式

^[^.][a-zA-Z0-9-_\.']+[^.]$

但是,这允许中间的连续点字符,并且不检查长度。


有谁能指导我如何添加这两个条件吗?

以下是一个似乎有效的模式:

^(?!.*\.\.)[a-zA-Z0-9_'-](?:[a-zA-Z0-9_'.-]{0,62}[a-zA-Z0-9_'-])?$
下面是对正则表达式模式的解释:

^                          from the start of the string
    (?!.*\.\.)             assert that two consecutive dots do not appear anywhere
    [a-zA-Z0-9_'-]         match an initial character (not dot)
    (?:                    do not capture
    [a-zA-Z0-9_'.-]{0,62}  match to 62 characters, including dot
    [a-zA-Z0-9_'-]         ending with a character, excluding dot
     )?                    zero or one time
$                          end of the string

以下是一个似乎有效的模式:

^(?!.*\.\.)[a-zA-Z0-9_'-](?:[a-zA-Z0-9_'.-]{0,62}[a-zA-Z0-9_'-])?$
下面是对正则表达式模式的解释:

^                          from the start of the string
    (?!.*\.\.)             assert that two consecutive dots do not appear anywhere
    [a-zA-Z0-9_'-]         match an initial character (not dot)
    (?:                    do not capture
    [a-zA-Z0-9_'.-]{0,62}  match to 62 characters, including dot
    [a-zA-Z0-9_'-]         ending with a character, excluding dot
     )?                    zero or one time
$                          end of the string
你可以使用正则表达式

正则表达式分解

正则表达式中的更正

-不应该在角色类的中间。它表示范围。避免在两者之间使用它 [a-zA-Z0-9_]相当于\w 你可以使用正则表达式

正则表达式分解

正则表达式中的更正

-不应该在角色类的中间。它表示范围。避免在两者之间使用它 [a-zA-Z0-9_]相当于\w 我的想法来了。用于\w单词字符

^在?!。{65}不超过64个字符 后跟[\w'-]+一个或多个[a-zA-Z0-9'-] 后跟包含句点的?:\.?[\w'-]+*。后跟一个或多个[a-zA-Z0-9_'-]直到$end 我的想法来了。用于\w单词字符

^在?!。{65}不超过64个字符 后跟[\w'-]+一个或多个[a-zA-Z0-9'-] 后跟包含句点的?:\.?[\w'-]+*。后跟一个或多个[a-zA-Z0-9_'-]直到$end

我希望长度检查使用.length属性比某些正则表达式构造快得多。我希望长度检查使用.length属性比某些正则表达式构造快得多。
^(?!.{65})[\w'-]+(?:\.[\w'-]+)*$