下面是我目前拥有的,这将匹配字母数字字符和空格:
^[a-z0-9\s]+$我想要做的是确保只有在只有一个(1)空间的情况下才会有匹配。以上将匹配“这是一个测试”,但我只希望它匹配的输入是“这是最”,或"T最高“。一旦有一个以上的空间总数,它将不再匹配。
理想情况下,它也将不匹配,如果空间是领先或落后,但这只是糖霜。
编辑:想法是,这将用于在帐户创建时验证帐户名。帐户名称可能只包含一个拉丁字母、一个数字和一个空格。然而,它可以是所有的字母或所有数字,空间是不需要的。这绝对是关于空间而不是空格。
发布于 2011-05-28 09:44:37
首先,通过修剪前导和尾随空格来清除用户名。
^[a-z0-9]+(?: [a-z0-9]+)?$发布于 2011-05-28 09:40:46
将允许最多有一个空间在中间。
^[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]+)?$
发布于 2011-05-28 09:24:35
它很容易,只需成批地构建它。
^[a-z0-9]+(?: [a-z0-9]+)?$一个或多个字母数字,然后是一个可选的组,由一个空格和一个或多个字母数字组成。(顺便说一句,\s匹配的是空格字符,而不是空格。也就是说,它实际上与[ \t\n]匹配。你到底想要哪一个?)
https://stackoverflow.com/questions/6160735
复制相似问题