求解,謝謝。
回複討論(解決方案)
//老,唐老鴨等有老字的都不能通過
規則這樣就可以了:$pre='/老/';
preg_match返回匹配到的次數,0或1,它只執行一次匹配
'/[\'\"\ \ ]/'
這個規則是尋找,單引號,雙引號,半間空格,全形空格,這四個的集合,只要有任意一個,都不通過,除了單引號要加\轉義外,其它都可以不加
指定一下編碼
$pre='/[\'\"\ \ ]/u';
$str='唐老鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){ echo $str.'不通過';}else{ echo $str.'通過';}唐老鴨通過
$str='唐老 鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){ echo $str.'不通過';}else{ echo $str.'通過';}唐老 鴨不通過
不知道你要做什麼
$str='唐老鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){ echo $str.'不通過';}else{ echo $str.'通過';}唐老鴨通過
$str='唐老 鴨'; $pre='/[\'\"\ \ ]/';if(preg_match($pre, $str)){ echo $str.'不通過';}else{ echo $str.'通過';}唐老 鴨不通過
不知道你要做什麼
不好意思,我的問題沒有表達清楚。
就是檢測$str字串是否包含$pre中的單引號空格等,有就表示不通過,沒有就表示通過。
例如:$str='你好' 是可以通過的
$str='你 好' 兩字中間有空格是不能通過的
但我發現$str='唐老鴨'或$str='老'都不能通過,兩個都沒有包含半形空格全形空格單引號雙引號,很奇怪為什麼?
謝謝。
//老,唐老鴨等有老字的都不能通過
規則這樣就可以了:$pre='/老/';
preg_match返回匹配到的次數,0或1,它只執行一次匹配
'/[\'\"\ \ ]/'
這個規則是尋找,單引號,雙引號,半間空格,全形空格,這四個的集合,只要有任意一個,都不通過,除了單引號要加\轉義外,其它都可以不加
不好意思,我的問題沒有表達清楚。
就是檢測$str字串是否包含$pre中的單引號空格等,有就表示不通過,沒有就表示通過。
例如:$str='你好' 是可以通過的
$str='你 好' 兩字中間有空格是不能通過的
但我發現$str='唐老鴨'或$str='老'都不能通過,兩個都沒有包含半形空格全形空格單引號雙引號,很奇怪為什麼?
謝謝。
沒有呀,我那兩個測試結果有什麼不對嗎?
沒有呀,我那兩個測試結果有什麼不對嗎?
我這裡第一個沒通過,不知道為什麼
沒有呀,我那兩個測試結果有什麼不對嗎?
我這裡第一個沒通過,不知道為什麼
把$pre中的全形的大空格去掉就可以
#2 應經說了,utf-8 編碼就加個 u 屬性
沒有呀,我那兩個測試結果有什麼不對嗎?
我這裡第一個沒通過,不知道為什麼
#2 應經說了,utf-8 編碼就加個 u 屬性
沒有呀,我那兩個測試結果有什麼不對嗎?
我這裡第一個沒通過,不知道為什麼
好的謝謝
指定一下編碼
$pre='/[\'\"\ \ ]/u';
謝謝
如果是我解決這個,不想用正則~提供一種思路討論下
代碼粗糙沒測試,有錯誤請原諒
$str = '唐 老' 鴨';$search = array(' ', ','); //需要檢測的字元$replace = ' '; //禁用字元全換成空格$str = str_replace($search, $replace, $str);if(strpos($str, ' ') !== false){ // 判斷有沒有空格 echo '不通過';}
離開編輯器果然原形畢露