JS Regex - 允许双连字符
JS Regex - allow double hyphen
我有下面的正则表达式来验证用户输入。
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$
用户输入的格式为 myInvoices--2015Jan12--04-10-11
但是,上面的正则表达式只允许带有 1 hyphen/dash 的名称:myInvoices-2015Jan12-04-10-11 而不是双破折号。
谁能告诉我如何让用户也输入双破折号?
谢谢
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-{1,2}){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-{1,2}){0,61}[0-9A-Za-z])?)*\.?$
我已将 {1,2}
添加到您的 -
以允许一两个破折号
您应该只需要在每个当前连字符后添加 -?
,即一个可选的连字符。所以 \b-
变成 \b--?
:
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b--?){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b--?){0,61}[0-9A-Za-z])?)*\.?$
这与您的样本输入相符
我有下面的正则表达式来验证用户输入。
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$
用户输入的格式为 myInvoices--2015Jan12--04-10-11
但是,上面的正则表达式只允许带有 1 hyphen/dash 的名称:myInvoices-2015Jan12-04-10-11 而不是双破折号。
谁能告诉我如何让用户也输入双破折号?
谢谢
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-{1,2}){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-{1,2}){0,61}[0-9A-Za-z])?)*\.?$
我已将 {1,2}
添加到您的 -
以允许一两个破折号
您应该只需要在每个当前连字符后添加 -?
,即一个可选的连字符。所以 \b-
变成 \b--?
:
^\s{0}$|^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b--?){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b--?){0,61}[0-9A-Za-z])?)*\.?$
这与您的样本输入相符