用于检查具有有限字符的名称的正则表达式模式
我要求validation用户名中包含一些特殊字符(’ – )和空白区域。 我可以在以下正则表达式的帮助下实现这一目标 –
^[a-zA-z]+([ '-][a-zA-Z]+)*$
但我无法为用户输入的最大字符数添加限制,例如25表示此特定正则表达式。 那么任何人都可以解释如何为上述正则表达式做同样的事情吗? 谢谢。
您可以在开头添加一个负向前瞻,不允许26个或更多字符:
^(?!.{26})[a-zA-Z]+([ '-][a-zA-Z]+)*$ ^^^^ ^
你也有一个拼写错误[Az]
,它必须是[AZ]
。 请参阅正则表达式[Az]和[a-zA-Z]之间的差异 。
负向前瞻 (上面的(?!...)
构造)锚定在字符串的开头(意味着它位于^
之后),长度检查只执行一次,就在使用main解析之前模式部分。
您还可以在此处查看有关负前瞻如何工作的更多信息 。
只需在开头添加一个前瞻,通过添加(?=.{1,25}$)
来匹配最多25个字符。
你的新正则表达式将是: ^(?=.{1,25}$)[a-zA-z]+([ '-][a-zA-Z]+)*$