Преобразование текста в число.
Необходимо вырезать из текста цифры, и преобразовать их в числовые значения.
К примеру есть: <p>Пример: 5+15 =двадцать</p> Сопутствующий вопрос, возможно ли вырезать и символ "+" и преобразовать из текста в математический символ? Заранее всем спасибо за помощь! |
Цитата:
var str = "Пример: 5+15 =двадцать"; var res = 0; str.match(/[\d]+/g).forEach(function (value) { res = res + +value; }); alert(res); |
var txt = "<p>Пример: 5+15 =двадцать</p>"; var result = txt.replace(/.*?(\d.*?)=.*/, function(a, b){ return (new Function( 'return (' + b + ')' )()); }); alert(result); еще вариант :) |
bes, тут больше reduce подойдет:
var str = "Пример: 5+15 =двадцать"; var res = str.match(/\d+/g).reduce(function (res, value) { return res + +value; }, 0); alert(res); |
Цитата:
|
Всем спасибо, будем разбираться :)
|
странно, что никто не предложил самый очевидный вариант
alert(eval("example 5+15 =twenty".replace(/[^\d+]+/g, ""))) вот так со всеми операциями "example 5-15 =twenty, example 5+15 =twenty, example 15/5 =twenty, example 5*15 =twenty" .split(",") .forEach(function(str){ alert(eval(str.replace(/[^\d+*/-]/g, ""))) }) |
Цитата:
|
bes,
Это баззворд для быдла. |
Цитата:
сам бы eval юзать не стал, потому как влом искать, где мог бы быть возможный прокол, тем более есть алтернативные варианты |
Часовой пояс GMT +3, время: 01:15. |