Уберите не алфавитно-цифровые символы с арабского UTF8 + английская строка

Я хочу удалить из строки все неарабские, не английские и не числовые символы, кроме черточек (-).

Мне удалось сделать это для неанглийских буквенно-цифровых символов, таких как:

$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);

Надеюсь, кто-нибудь может мне помочь.

1 ответ

Решение

Попробуйте ниже:

$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);
Другие вопросы по тегам