Есть функция parseInt(max30, 10); преобразует строки вида 1100 в число. Но бывает встречается стока записанная вот так 1 100, пробел мешает, выдает NaN... Как можно преобразовать строки такого вида в число? Заранее спасибо.
Вот так. С помощью регулярного выражения. Приведу полный код документа.
var s="1 1100";
s = s.replace(/\s/g, '');
document.write(s);
console.log(s);
Так же можно и без регулярок, но еще нужно выяснить что лучше:
let s = '1 1100';
s = +s.split(' ').join('');
document.write(s);
console.log(s);
function parse(x) {
var res = +x;
return res === res ? res : +(""+x).replace(/\s/g, "")
}
console.log([
123, "123", "1 234", "-2.5",
0, "0", "", null,
undefined, NaN, "null", "qwe",
].map(parse).join(" "))
Вместо удаления пробелов из строки - я бы сделал удаление всех нечисловых символов (исключая минус, и точку как разделитель целой и дробной частей числа), а затем взятие числа до точки... то есть, заодно еще и операцию floor
выполнив. Имхо, это более целесообразно.
for (const s of ['1 100', '-$12,000', '\n123abc', '45.678'])
console.log(parseIntEx(s));
function parseIntEx(val) {
const match = val.replace(/[^\d.\-]/g, '').match(/^(-?\d+)(?:\.)?/);
return (match || [0, null])[1];
}
Единственное "но": при входной строке вида 'ab-cd123'
, результат будет некорректен: -123
. Такой случай можно обработать, но ценой усложнения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется кнопка, при нажатии на которую происходит php скрипт, на добавление данных в базу данныхТак же по этой кнопке вызывается js скрипт, со всплывающим...
Почему если при создании объектов указать перед значением (short), то компилятор понимает, в какую переменную записать это значение?
В Swagger есть проблема на вызов реста возвращающий List<Map<String, Object>> (вверху появляется сообщение)
Как сделать навигацию по неделям как на скриншоте? Нажимаем вперёд переключаемся на следующую неделю, если назад то на предыдущую?