我在开始时就写了用于限制空白的regex模式,但是它不起作用。指导我找到需要更改逻辑的地方?
^[^\s]+[a-z-A-Z]$
我需要在Java脚本中执行此操作以验证输入字段。我需要在输入字段中允许所有字符在开始时都没有空格,并且在结尾和中间都需要所有空格。
答案 0 :(得分:1)
如果您只允许使用字母和空格,则[^\s]
匹配任何字符,但只能包含一个空格。
使用
^[a-zA-Z][a-zA-Z\s]*$
注意:要也“允许”(=匹配)除空格,字母和数字之外的任何可打印ASCII字符,您可以在正则表达式中添加[!-\/:-@[-
{-〜]`(请参阅this answer of mine ):
^[a-zA-Z][a-zA-Z\s!-\/:-@[-`{-~]*$
或者,如果也应该匹配一个空字符串:
^(?:[a-zA-Z][a-zA-Z\s]*)?$
请注意,要在字符类中包含连字符,将其放在字符类的开头/结尾更加安全(并且更便于携带),即使用[a-zA-Z-]
代替[a-z-A-Z]
详细信息
^
-字符串的开头[a-zA-Z]
-ASCII字母[a-zA-Z\s]*
-0个或更多ASCII字母或空格$
-字符串的结尾。 (?:...)?
是一个可选的非捕获组,它匹配其模式1或0次。