2011-11-22 34 views
-2

什麼是正則表達式來篩選任何特殊字符?什麼是正則表達式來過濾PHP中的任何特殊字符?

我想刪除除0-9 a-z A-Z和標準通用字母表(阿拉伯語)以外的任何字符。

例如刪除這些字符:`[email protected]#$%^&*()_+=-\][{}|';lL:"/.,<>?和任何其他。

+0

什麼是 「標準通用字母(阿拉伯語)」?如果您確切知道它包含哪些字符,請將它們添加到Sjoerd的答案中,並且您有解決方案。 – Kleist

+1

糟糕的形式downvote一個答案,然後建議有人用它作爲一個基礎去工作。 – Andrew

+1

查看[本問題的最佳答案](http://stackoverflow.com/questions/1011841/check-the-language-of-string-based-on-glyphs-in-php/1021799#1021799)如何匹配阿拉伯語字符。 – Wiseguy

回答

1
$result = preg_replace('~[^A-Za-z0-9]~', '', $text); 
+0

-1不按要求移除「標準通用字母表(阿拉伯語)」。 – Kleist

+0

它劑量支持阿拉伯語 – Hamidreza

+0

我不明白你的意思是「標準通用字母(阿拉伯語)」。嘗試使用['u' modifier](http://php.net/manual/en/reference.pcre.pattern.modifiers.php)。 – Sjoerd

1

怎麼樣:

preg_replace('/[^\p{Alphabetic}\p{Arabic}\pN]*/u', '', $str);