从阿拉伯语UTF8 +英语字符串中删除非字母数字字符

时间:2012-10-23 09:16:34

标签: php regex utf-8 arabic ereg-replace

我想从字符串中删除所有非阿拉伯语,非英语和非数字字符,但破折号( - )除外。

我设法为非英语字母数字字符这样做:

$slug = ereg_replace('[^A-Za-z0-9-]', '', $string);

但对于非阿拉伯语字母数字字符,我试图这样做:

$slug = ereg_replace('\p{InArabic}', '', $string);

但它没有删除非字母数字字符!我也试过this answer但它也没有用,它总是返回'0'!!

$slug = preg_replace('/[^\x{0600}-\x{06FF}A-Za-z0-9-]/u','', $string);

希望有人可以帮助我。

1 个答案:

答案 0 :(得分:9)

尝试以下方法:

$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);