我想在字符串中替換空字符串中的所有非字字符,期望空格並將所有多個空格放在一起作爲單個空格。PHP mb_ereg_replace不會替換,而preg_replace按預期工作
以下代碼執行此操作。
$cleanedString = preg_replace('/[^\w]/', ' ', $name);
$cleanedString = preg_replace('/\s+/', ' ', $cleanedString);
但是,當我試圖使用mb_ereg_replace什麼也沒有發生。
$cleanedString = mb_ereg_replace('/[^\w]/', ' ', $name);
$cleanedString = mb_ereg_replace('/\s+/', ' ', $cleanedString);
$ clearedString與上述情況下的$ name相同。我究竟做錯了什麼?
謝謝你是我犯的錯誤。 如果我的輸入是UTF-8,是否有關於使用哪種方法的建議? – Jithin 2010-08-29 14:02:37
@Jithin如果它是UTF-8,你可以使用'preg_replace'和'u'標誌:'preg_replace('/ \ s +/u','',$ clearedString);' – Artefacto 2010-08-29 14:22:55
@Artefacto謝謝。您能否告訴我,假設只要輸入採用UTF-8編碼,preg_replace對大多數語言都適用,是否安全? – Jithin 2010-08-29 14:38:46