Регулярное выражение для принудительного ввода буквенно-цифровых символов, но разрешающее апострофы и дефисы?

#php #regex

#php #регулярное выражение

Вопрос:

Как бы мне изменить эту функцию, чтобы она допускала одиночные апострофы и дефисы:

 function sanitize_string($s) {
    $result = preg_replace("/[^a-zA-Z0-9] /", " ", html_entity_decode($s, ENT_QUOTES));
    return $result;
}
  

Ответ №1:

Просто включите единственный апостроф и дефис в конце диапазона:

 function sanitize_string($s) {
    $result = preg_replace("/[^a-zA-Z0-9'-] /", " ", html_entity_decode($s, ENT_QUOTES));
    return $result;
}
  

Комментарии:

1. достаточно просто. Спасибо за помощь, халфдан

Ответ №2:

Пытаюсь получить от вас ответ как можно быстрее.

Я думаю, вы можете просто добавить их в класс character; возможно, вам нужно их экранировать.

Примечание: чтобы использовать - , обязательно ставьте его в конце, иначе оно будет считаться метасимволом.