我需要编写表单验证正则表达式,它允许在字符串中空格,但不允许只空格。
例如- 'Chicago Heights, IL'
将是有效的,但如果用户只是敲空格键任意次数和命中进入的形式将不进行验证。 之前的验证,我已经试过运行的if (foo != null)
然后运行正则表达式,但按下空格键仍然注册的人物,所以这是行不通的。 下面是我使用的是什么,现在允许的空间:
^[-a-zA-Z0-9_:,.' ']{1,100}$
我需要编写表单验证正则表达式,它允许在字符串中空格,但不允许只空格。
例如- 'Chicago Heights, IL'
将是有效的,但如果用户只是敲空格键任意次数和命中进入的形式将不进行验证。 之前的验证,我已经试过运行的if (foo != null)
然后运行正则表达式,但按下空格键仍然注册的人物,所以这是行不通的。 下面是我使用的是什么,现在允许的空间:
^[-a-zA-Z0-9_:,.' ']{1,100}$
我不知道你需要一个RegEx
在这里。 为什么不打电话给你的语言的Trim()
方法,然后确保得到的字符串非空?
这很简单: .*\S.*
这需要一个非空格字符,在任何地方。 正则表达式的语法是对Perl 5个对应的正则表达式,如果你有另一种语言,语法可能会有所不同一点。
下面将回答你的问题是写的,但看到我的额外注后:
^(?!\s*$)[-a-zA-Z0-9_:,.' ']{1,100}$
说明: (?!\s*$)
是负先行 。 它的意思是:“下面的文字所无法比拟的子模式\s*$
”。 当你把子模式考虑在内,它的意思是:“以下人物既不是空字符串,也不是空白一路到最后一个字符串。因此,必须有至少一个非空白字符这点在后。字符串“。 一旦你的规则出的方式,你可以自由地让你的性格类空间。
额外注:我不认为你' '
做你想要什么。 它看起来像你试图代表空格字符,但正则表达式的解释'
作为文字撇号。 内部的字符类, ' '
将意味着“匹配任何字符要么是'
一个空格字符,或'
”(注意的是,第二'
字符是冗余的)。 我怀疑你想要的是更多这样的:
^(?!\s*$)[-a-zA-Z0-9_:,.\s]{1,100}$
你可以使用简单:
^(?=.*\S).+$
如果您正则表达式引擎支持积极的向前看符号。 该表达式需要至少一个非空格字符。
看到它在rubular 。
如果我们想只允许字符集,然后我试图与应用验证USERNAME_REGEX = /^(?:\s*[.\-_]*[a-zA-Z0-9]{1,}[.\-_]*\s*)$/;
., _ , -
字符也被允许的,但字符串必须有一个字母数字字符。 试试这个正则表达式:
^[^\s]+(\s.*)?$
这意味着没有空间,然后,任选地,一个空格,接着任何一个或多个字符。
只要使用\s*
,以避免两个词在正则表达式中一个或多个空格。
例如, "Mozilla/ 4.75"
和"Mozilla/4.75"
既可以通过以下的正则表达式匹配:
[A-Z][a-z]*/\s*[0-9]\.[0-9]{1,2}
添加\s*
两个词之间的零,一个或多个空格匹配。