2014-10-01 65 views
0

我有一個奇怪的問題,我很抱歉,如果標題沒有多大意義,因爲我似乎不能說得對。隱藏空白字符導致preg_match返回false

基本上我想檢查是否有特定的字符串只是數字,這個我使用regluar表達

preg_match("/^[0-9]+$/", $ordernumber[1]); 

這就是它很難得到調試從我瞭解到,$ordernumber[1]這應該是解釋"41720"var dumped $ordernumber[1]有一個字符串長度當只有5個數字那裏。

這導致我相信該字符串中有一個空格字符,在正則表達式中沒有說明。

如何找出字符串中的空白/特殊字符?

附上的是一個轉儲的圖片以及preg match的結果,它是0/false。

注意字符串的長度

謝謝您的閱讀。

只是想通了如果我使用preg_match("/^[0-9]+$\D/", $ordernumber[1]); \ D(非數字)然後它返回true,這解決了我的問題,但仍然想知道它是什麼字符,如果有人知道如何找出。

下面的答案將修剪字符串開頭和結尾的空白字符,實際上會做我想要的。

enter image description here

回答

0

試圖修改你的正則表達式來

preg_match("/^[0-9]+$/", trim($ordernumber[1])); 
+0

你好謝謝你,我想通了哪裏編輯正則表達式,但這將做我所要求的,所以我會接受這個答案。感謝有用功能的信息! – Pheonix2105 2014-10-01 15:20:05

3

如果你想知道的是字符串中的什麼角色,只是做:

echo bin2hex($string); 
+0

+1,比我的回答好! – iamgory 2014-10-01 15:33:20