Эта задача отличается от простой похожей — «Как сложить все цифры в строке?»
В этой задаче мы попытаемся определить, что является числом в строке, а также как сложить все эти числа.
Функция сложения всех чисел из строки
function sumNumFromStr(str){
return [...str].map(i=>{if(isFinite(i)==true || i=="."){return i}else{return " "} }).join("").split(" ").filter(i=>i!="").map(i => Number(i)).map(i=>x+=i, x=0).reverse()[0]
}
Собственный метод для объектов-прототипов String
String.prototype.sumNumFromStr = function (){ return [...this].map(i=>{if(isFinite(i)==true || i=="."){return i}else{return " "} }).join("").split(" ").filter(i=>i!="").map(i => Number(i)).map(i=>x+=i, x=0).reverse()[0] }
Пошаговое решение как работает функция — Вводные данные
Пример строки:
var stroka = "1dff e7.63cnj we956n cc3268cnn ew je$*m io0.92n iJE2"

Мы хотим получить такой массив:
["1", "7.63", "956", "3268", "0.92", "2"]
Как это сделать?
Шаг № 1. «Не числа» мы заменяем на пробелы. Исключением является точка «.«
Каждый символ строки превращаем в элемент массива. Получим массив из строкового типа данных
var massiv = [...stroka]
Пытаемся привести к числу каждый символ. Если приводится, то возвращаем строковый символ как есть, если не приводится к числу, то возвращаем пробел.
massiv.map(i => {if(isFinite(i) == true || i == "."){return i}else{return " "}})
Применяем эту часть алгоритма
var massiv2 = massiv.map(i => {if(isFinite(i) == true || i == "."){return i}else{return " "}})
Нам прилетает очищенный массив, в котором уже более наглядно можно разглядеть очертание чисел:
[«1″, » «, » «, » «, » «, » «, «7», «.», «6», «3», » «, » «, » «, » «, » «, » «, «9», «5», «6», » «, » «, » «, » «, «3», «2», «6», «8», » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, » «, «0», «.», «9», «2», » «, » «, » «, » «, » «, «2»]

Шаг № 2. Собираем строку
Склеиваем все элементы массива в одну строку.
var stroka2 = massiv2.join("")

Шаг № 3. Удаляем множественные пробелы
Нам нужен механизм, который распознаёт последовательности пробелов и заменяет любую последовательность пробелов на один пробел.
Мы уже получили строку и теперь можем её разделить при помощи метода split(). В качестве разделителя будет выступать один символ пробела.
stroka2.split(" ")

Шаг № 4. Фильтруем массив
var massiv3 = stroka2.split(" ").filter(i => i != "")

Шаг № 5. Приводим к строки к числам
var massiv4 = massiv3.map(i => Number(i))

Шаг № 6. Складываем числа в массиве
massiv4.map(i=>x+=i, x=0).reverse()[0]

Альтернативное решение
Можно использовать регулярные выражения.
Если сейчас воспользоваться методом match() и передать в него регулярное выражение «/\d+/g», то мы получим не подходящий результат
stroka.match(/\d+/g)
[«1», «7», «63», «956», «3268», «0», «92», «2»]
Нужны регулярные выражения и квантификаторы. Управляющие последовательности в JavaScript — так это называется.
….когда найду решение, тогда допишу эту публикацию
Информационные ссылки
JavaScript | Можно ли привести символ к цифре?
Стандарт ECMAScript — Раздел «19.2.2 isFinite ( number )» — https://tc39.es/ecma262/#sec-isfinite-number