首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用正则表达式来匹配单个空间总数而不仅仅是单个空间

如何使用正则表达式来匹配单个空间总数而不仅仅是单个空间
EN

Stack Overflow用户
提问于 2011-05-28 09:18:55
回答 5查看 19.4K关注 0票数 10

下面是我目前拥有的,这将匹配字母数字字符和空格:

代码语言:javascript
复制
^[a-z0-9\s]+$

我想要做的是确保只有在只有一个(1)空间的情况下才会有匹配。以上将匹配“这是一个测试”,但我只希望它匹配的输入是“这是最”,或"T最高“。一旦有一个以上的空间总数,它将不再匹配。

理想情况下,它也将不匹配,如果空间是领先或落后,但这只是糖霜。

编辑:想法是,这将用于在帐户创建时验证帐户名。帐户名称可能只包含一个拉丁字母、一个数字和一个空格。然而,它可以是所有的字母或所有数字,空间是不需要的。这绝对是关于空间而不是空格。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-28 09:44:37

首先,通过修剪前导和尾随空格来清除用户名。

代码语言:javascript
复制
^[a-z0-9]+(?: [a-z0-9]+)?$
票数 5
EN

Stack Overflow用户

发布于 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]+)?$

票数 10
EN

Stack Overflow用户

发布于 2011-05-28 09:24:35

它很容易,只需成批地构建它。

代码语言:javascript
复制
^[a-z0-9]+(?: [a-z0-9]+)?$

一个或多个字母数字,然后是一个可选的组,由一个空格和一个或多个字母数字组成。(顺便说一句,\s匹配的是空格字符,而不是空格。也就是说,它实际上与[ \t\n]匹配。你到底想要哪一个?)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6160735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档