Помогите получить числа
Как можно найти все числа в строке и заполнить ими массив
Так: var re = /\d+/g var res while ( (res = re.exec(str)) != null) { ar[i] = res[i]; alert(res[i]); i++; } находится только первое число. |
Когда-то писал функцию для вычленения одного числа из строки. Но после небольшой переделки можно находить и все числа:
function parseNumber(obj) { obj = (obj + "").match(/[e\.0-9-]+/gi) || []; var res = []; for (var i = 0; i < obj.length; i++) if (/^-?(?:\d?\.)?\d+(?:e-?\d+)?$/i.test(obj[i])) res.push(+obj[i]); return obj; } alert(parseNumber("xxx-2.3aaa4.7E10")); Примечательна тем, что может находить числа со знаком "-", с десятичной точкой и в экспоненциальном виде (1E3 = 1000, например). |
Спасибо, попробую. Свиду просое действие и так легко запутаться.
|
rommeq,
Исправленный ваш вариант var str = " 111 222 333", re = /\d+/g, i = 0, ar = [] , res; while ( (res = re.exec(str)) != null) { ar[i] = res[0]; alert(ar[i]); i++; } |
Matre,
А если parseNumber("xxx-2.3ee4ee..... 7ee10") ? |
Вариант поиска чисел в строке
function parseNumber(obj) { return (obj + "").match(/[+-]?\d+(\.\d+)?(E[+-]?\d+)?/g) || []; } alert(parseNumber("xxx-2.3ee+4ee..... -5e600xx 7.5E10 xx9.1E-3")); |
Спасибо, очень помогли
|
Часовой пояс GMT +3, время: 08:37. |