正则表达式,不允许输入字段中的空格

时间:2013-05-02 09:37:31

标签: javascript regex

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

var regexp = /^\S/;

如果角色之间有空格,这对我有用。也就是说,如果用户名是ABC DEF。如果一个空间在开头,它就不起作用,例如<space><space>ABC。正则表达式应该是什么?

5 个答案:

答案 0 :(得分:56)

虽然您已指定start anchor和第一个字母,但您尚未对字符串的其余部分执行任何操作。在repetition

之前,您似乎需要character class end of the string
var regexp = /^\S*$/; // a string consisting only of non-whitespaces

答案 1 :(得分:12)

使用+加号(与之前的一项或多项匹配),

var regexp = /^\S+$/

答案 2 :(得分:0)

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

var regexp = /\s/g

答案 3 :(得分:0)

只有在没有空格的情况下,此字段才会与输入字段或字符串匹配。如果有空格,将完全不匹配。

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

从行的开头到结尾进行匹配。接受字母数字字符,数字和大多数特殊字符。

如果只需要字母数字字符,则可以像这样更改[]中的内容:

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

答案 4 :(得分:0)

如果您使用的某些插件需要字符串,并使用构造Regex创建正则表达式对象,例如new RegExp()

比以下字符串更有效

'^\\S*$'

同一个正则表达式@Bergi只是为新的RegExp构造函数提供了字符串版本