检查字符串开头的空格
我需要使用preg_match
来检查只有a-z0-9。 (包括句号(。))。我不想取代任何东西。我的问题是,它没有注意到字符串开头的空格。检查字符串开头的空格
此外,如果有人知道如何检查连续没有两个满座,我将非常感激。
我有什么至今:
("/[^a-z0-9.]+$/",$request)
谢谢!
可以使用ltrim'
if(ltrim($request) != $request) { // there was whitespace }
("/[^a-z0-9.]/",$request)
编辑做到这一点没有正则表达式 - 我误解你的问题。这将检查是否有任何非a-z0-9.
字符。
似乎没有工作:/ – ITg 2010-04-23 22:27:05
^inside []是错误的 – 2010-04-23 22:29:37
^[]内否定characers(变化意为“除这些任何字符”)
^的[]表示“字符串的beggining”外部(与$表示“字符串的末尾”)
所以你需要类似的东西:
("/^[a-z0-9.]+$/",$request)
如果要排除你需要的东西有点复杂点的序列,但不单独点:
preg_match('/^([a-z0-9]|(?<!\\.)\\.)+$/', $request);
/^(?!.*\.{2,}.*$)[a-z0-9.]+$/
说明
^ # start-of-string anchor (?! # begin negative look-ahead ("a position not followed by...") .* # anything \.{2,} # a dot, two times or more .* # anything $ # the end of the string ) # end negative lookahead [a-z0-9.]+ # a-z or 0-9 or dot, multiple times $ # end-of-string anchor
匹配
-
"abc123"
"abc.123"
失败
" abc"
"abc..123"
"abc!"
我不想取代任何东西。 – ITg 2010-04-23 22:26:23
@ITg - 你没有在这里取代任何东西 - 只是检查一开始是否有空白。 – thetaiko 2010-04-23 22:27:29
他想检查是否没有其他字符,而不是.a-z0-9,而不是在开头没有空格。 – 2010-04-23 22:29:06