10000 gold" взять только число 10000? parseInt работает,только хорошо в строках вида "10000 gold"
Регулярка
localPriceEXP = 'Pack of 10000 gold'; let toNumber = localPriceEXP .match(/\d+$/); let localPriceNumber = parseInt(toNumber, 10); console.log(localPriceNumber); выдает NaN
А ты уверен что у тебя все верно?)
https://learn.javascript.ru/string
const str = 'Pack of 10000 gold'; const match = str.match(/\d+/); if (match) { const gold = match[0] const number = Number(gold) console.log(number) }
спасибо, сработало
верно $ тут лишний
Понимаешь зачем if (match) ?
не понял
match будет null, если в строке нет ни одного числа. Если не проверишь - скрипт упадёт с ошибкой.
а если я ожидаю в строке либо null либо строку с числом, можно не делать проверку?
match это либо null либо Array. Массив с одним значением прикольно приводится к типу number, а null приводится к 0. Так что похоже мой код в данном случае избыточен. Но это всё неочевидное поведение и наверное стоит такого избегать.
Обсуждают сегодня