Возвращает числовое значение из строки

0

Название в значительной степени самоочевидно, но просто для уточнения.

Я хочу получить числовое значение из строки, ведь не обязательно содержит только числовые значения.

Теперь я могу сделать это с помощью preg_match но мне было интересно, есть ли внутренняя команда php, которая может сделать это более чистым способом.

поэтому... просто уточнить с помощью примера:

$myString = 'qazwsxedc15rfvtgbyhnujmikolp';
$myString = fetchNumber($myString); //Expecting to get $myString=15;
  • 5
    Может быть, это хорошее решение? stackoverflow.com/questions/6278296/...
  • 0
    Я думаю, регулярное выражение будет вашим лучшим вариантом для этого.
Показать ещё 2 комментария
Теги:
string
numbers
preg-match
integer

2 ответа

2

Я не верю, что есть функция, которая может отображать числа из строки. Существуют определенные соглашения, такие как строки, начинающиеся с чисел, могут быть введены типа целыми числами.

Во всяком случае, preg_match может оказаться не оптимальным. Рассмотрите возможность использования preg_replace

function fetchNumber($string)
{
  $string = preg_replace('#[^\d]*#', '', $string);
  return (int)$string;
}

$myString = 'qazwsxedc15rfvtgbyhnujmikolp';
$myString = fetchNumber($myString); //Expecting to get $myString=15;

var_dump($myString);

Вы теряете "точку", которая может сигнализировать о поплавках, но ваш сценарий исключил эту возможность, насколько я заметил.

Живой пример на sandbox.onlinephpfunctions.com

  • 0
    Спасибо чувак! Очень полезно!
  • 0
    Спасибо брат ! Я просто выясняю, что это возможно, чтобы получить его прямо из коробки с intval (filter_var ($ соответствует [0], FILTER_SANITIZE_NUMBER_INT)); Работает отлично !!!
1

Попробуйте что-то вроде этого

$str = 'qazwsxedc15rfvtgbyhnujmikolp';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню