我想从字符串中删除所有非阿拉伯语,非英语和非数字字符,但破折号( - )除外。
我设法为非英语字母数字字符这样做:
$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);
希望有人可以帮助我。
答案 0 :(得分:9)
尝试以下方法:
$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);