JavaScript | Как извлечь числа из строки? — efim360.ru

JavaScript | Как извлечь числа из строки?

Функция извлекающая числа из строки

function numFromStr(str){
   return [...str]
   .map(i => {if(isFinite(i) == true || i == "."){return i}else{return " "}})
   .join("")
   .split(" ")
   .filter(i => i != "")
   .map(i => Number(i))
}

Как работает функция?

Принимает строку. Возвращает массив с числами.

Шаг 1 - приводим строку к массиву.

Шаг 2 - проходим по каждому элементу массива и проверяем условие возможности приведения символа к цифре. Если можно, то возвращаем, иначе возвращаем один пробел. (он будет разделителем в будущем). isFinite(number) определяет можно ли символ привести к цифре. Например строку "5" привести к числу 5.

Шаг 3 - склеиваем элементы массива в одну строку.

Шаг 4 - Разделяем строку по разделителю - по пробелу.

Шаг 5 - Фильтруем массив. Отбираем элементы со значениями не равными пустой строке.

Шаг 6 - Приводим строки к числам

 

Пример строки - Скопируй функцию и протестируй в консоли браузера!

var stroka = "100ыптлцг%;Р(Р№0.5лмк)№?ХЪС0.5ьмфщгугруа1БЮыпаКсывУКА20"

numFromStr(stroka)
Извлекли числа из строки - JavaScript
Извлекли числа из строки - JavaScript

 

Информационные ссылки

JavaScript | Строки (String)

JavaScript | Массивы (Array)

Стандарт ECMAScript - Раздел "19.2.2 isFinite ( number )" - https://tc39.es/ecma262/#sec-isfinite-number