PHP - удалить все нечисловые символы из строки

Какой лучший способ для меня это сделать? Должен ли я использовать регулярное выражение или есть другая встроенная функция PHP, которую я могу использовать?

Например, я бы хотел: 12 months становиться 12, Every 6 months становиться 6, 1M становиться 1, так далее.

Спасибо

2 ответа

Решение

Вы можете использовать preg_replace в этом случае;

$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );

$ res возвращает 6 в этом случае.

Если вы хотите также включить десятичный разделитель или разделитель тысяч, проверьте этот пример:

$res = preg_replace("/[^0-9.]/", "", "$ 123.099");

$ res в этом случае возвращает "123.099"

Включите точку в качестве десятичного разделителя или разделителя тысяч: "/[^0-9.]/"

Включить запятую в качестве десятичного разделителя или разделителя тысяч: "/[^0-9,]/"

Включите точку и запятую в качестве десятичного разделителя и разделителя тысяч: "/[^0-9,.]/"

Использование \D для сопоставления нецифровых символов.

preg_replace('~\D~', '', $str);
Другие вопросы по тегам