2013-12-20 15 views
2

我已枉過苦尋找此問題的修復程序。我在包含用戶輸入空間的網頁中有一個可編輯字段。當我複製空間並將其輸入到一個名爲IVI32的程序中時,我想你會調用一個Unicode文本程序,我會得到以下信息。PHP僅偵測1個或多個unicode空格

空格字符被定義爲FFFE2000。我需要檢測該字段何時具有一個或多個這些空間,而沒有其他字段。我嘗試了以下preg_match:

'/\s+/u' 
'/^[0 :-]+$/ ' 
'/\A\s*\z/' 

沒有用,我完全難住。任何來自一些Unicode專家的幫助將非常感謝。

+1

我不認爲'FFFE2000'解決任何明智的人物。只需嘗試'var_dump(bin2hex($ string))'並顯示結果,以及您期望的結果。 – deceze

回答

0

這項工作?

preg_match('/^ +$/', $subject); 

匹配一個或多個空格?因爲\ s也會匹配不間斷的空格,製表符和換行符。

+0

謝謝,但這沒有奏效。我確實發現了一些可行的東西(最後!),所以我會回答我自己的問題。 – noCodeMonkeys

0

有一試:

/\p{WhiteSpace}/ 
+0

謝謝,但正如所寫,這會產生以下錯誤:警告:preg_match():編譯失敗:\ P或\ p後的未知屬性名稱 – noCodeMonkeys

1

有在我的代碼中的錯誤這是防止任何無法正常工作(沒有休息時間的產品!)。這是什麼適用於其他人誰可能要檢測,如果一個元素只包含空格,無法通過PHP trim();

if(!preg_match('/\\s/', $test_string)):-do something- 
if(!preg_match('/\s+/u', $test_string)):-do something- 
if(!preg_match('/[\pZ\pC]+/u', $test_string)):-do something- 

對於任何人誰是有興趣的空間被這句話結束後立即貼上。