我有以下正则表达式为用户输入做一些验证.
^\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])?)*\.?$
Run Code Online (Sandbox Code Playgroud)
用户输入的格式为myInvoices - 2015Jan12--04-10-11
但是,上面的正则表达式只允许带有1个连字符/破折号的名称: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])?)*\.?$
Run Code Online (Sandbox Code Playgroud)
我已添加{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])?)*\.?$
Run Code Online (Sandbox Code Playgroud)
这与您的样本输入匹配
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |