我们有一些用户输入的字段;到目前为止,我们验证此内容的规则是[A-Z][A-Z0-9]{0,7}
。
含义:任何带有至少一个字符的大写字母;从一个角色开始;整个单词最多8个字符。
现在我被告知我们也应该接受“尾随”空格;但当然 - 只有尾随空格。更新;因为第一个答案是错误的:整个单词的最大长度仍然是8个字符!因为这正是导致我提出这个问题的重点。
我想这可以用TWO表达式检查:
a)[A-Z][A-Z0-9 ]{0,7}
...必须匹配输入和
b)[ ][A-Z0-9]
必须与输入
(第二个表达式只是找到任何“非尾随”空格)
但是还有一个可以用来检查这种情况的SINGLE正则表达式吗?
或者这是其中一个场合,好吧,虽然幸运 - 正则表达式只接受上下文无关语法?!
答案 0 :(得分:5)
如果您只想允许尾随空格,请使用:
^[A-Z][A-Z0-9]{0,7} *$
或者:
^[A-Z][A-Z0-9]{0,7}\h*$
此处\h*
是水平空格,仅在末尾匹配0或空格或制表符。
编辑:根据已修改的问题,您可以使用此基于前瞻性的正则表达式:
^(?=[A-Z0-9\h]{1,8}$)[A-Z][A-Z0-9]*\h*$