我需要使用preg_match
來檢查只有a-z0-9。 (包括句號(。))。我不想取代任何東西。我的問題是,它沒有注意到字符串開頭的空格。檢查字符串開頭的空格
此外,如果有人知道如何檢查連續沒有兩個滿座,我將非常感激。
我有什麼至今:
("/[^a-z0-9.]+$/",$request)
謝謝!
我需要使用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