这是我目前拥有的,这将匹配字母数字字符和空格:
^[a-z0-9\s]+$
Run Code Online (Sandbox Code Playgroud)
我想做的是确保只有一(1)个空格才能匹配.以上将匹配"这是一个测试",但如果输入是"This isatest"或"T hisisatest",我只希望它匹配.一旦总空间不止一个,它将不再匹配.
理想情况下,如果空间是领先或尾随,它也不匹配,但那只是结冰.
编辑: 这个想法是,这将用于在帐户创建时验证帐户名称.帐户名称只能包含拉丁字母,数字和单个空格.但是,它可以是所有字母或所有数字,不需要空格.这绝对是关于空间而不是空白.
将允许介于两者之间的最多一个空间.
^[a-zA-Z0-9]+\s?[a-zA-Z0-9]+$
将允许两者之间只有一个空格
^[a-zA-Z0-9]+\s[a-zA-Z0-9]+$
EDIT1:
以上解决方案不接受单个字符串.
以下解决方案还匹配单个字符串
^[a-zA-Z0-9]+([ ][a-zA-Z0-9]+)?$
首先通过修剪前导和尾随空格来清除用户名.使用占有量词的正则表达式:
^[a-z0-9]+(?: [a-z0-9]+)?$
Run Code Online (Sandbox Code Playgroud)