5

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

我设法为这样的非英文字母数字字符做到了:

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

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

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

但它没有去除非字母数字字符!我也试过这个答案,但它也没有用,它总是返回'0'!

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

希望有人可以帮助我。

4

1 回答 1

9

试试下面的:

$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);
于 2012-10-23T09:30:02.557 回答