2013-07-22 82 views
0

我已經遇到了這個功能,將要做的第一部分,我覺得刪除非字母數字字符

preg_replace("/[^A-Za-z0-9 ]/", '', $string); 

但我不希望刪除「 - 」,「+」或「| 」。 我怎樣才能爲這些例外。

回答

4
preg_replace("/[^A-Za-z0-9 +|-]/", '', $string); 
+1

如果在第一個或最後一個位置使用,則不需要在字符類內部轉義'-'。 – anubhava

+0

@anubhava - 其實你是在兩個角色之間做的。出於這個原因,我把它放在最後而沒有逃脫,但是爲了萬一他改變了事物的順序,我逃脫了它。 –

+0

正確的,這就是我的意思是,如果在第一或最後一個位置使用' – anubhava

0

試試這個:

$string = "[email protected]%+"; 
echo preg_replace("/[^A-Za-z0-9\+\-\| ]/", '', $string); 
2

您也可以使用簡寫形式與\w

preg_replace("/[^\w\+\|\-\s]/", '', $string); 
相關問題