43

我的表单中有一个用户名字段。我不想在字符串中的任何地方允许空格。我用过这个正则表达式:

var regexp = /^\S/;

如果字符之间有空格,这对我有用。也就是说,如果用户名是ABC DEF. 如果开头有空格,例如<space><space>ABC. 正则表达式应该是什么?

4

5 回答 5

93

虽然您已经指定了起始锚点和第一个字母,但您还没有对字符串的其余部分做任何事情。您似乎希望重复字符类,直到字符串结束

var regexp = /^\S*$/; // a string consisting only of non-whitespaces
于 2013-05-02T09:42:12.797 回答
14

使用+加号(匹配一个或多个前面的项目),

var regexp = /^\S+$/
于 2013-05-02T09:42:28.150 回答
5

如果您正在使用一些带有字符串的插件并使用构造正则表达式来创建正则表达式对象 i:enew RegExp()

比下面的字符串有效

'^\\S*$'

这是相同的正则表达式 @Bergi 只提到了新 RegExp 构造函数的字符串版本

于 2019-11-19T17:07:58.233 回答
3

这将有助于找到开头、中间和结尾的空格:

var regexp = /\s/g

于 2019-05-08T10:59:01.187 回答
0

如果没有空格,这个只会匹配输入字段或字符串。如果有空格,则根本不匹配。

/^([A-z0-9!@#$%^&*().,<>{}[\]<>?_=+\-|;:\'\"\/])*[^\s]\1*$/

从行首匹配到行尾。接受字母数字字符、数字和大多数特殊字符。

如果您只想要字母数字字符,请更改 [] 中的内容,如下所示:

/^([A-z])*[^\s]\1*$/

于 2019-10-17T18:07:57.010 回答