@maksmaksimovich

Чем заменить такую запись?

Как можно переписать это, чтобы было более правильно? Нужно, чтобы true или false возвращало, в myNumber передаётся строка вида '123' или '12323asd'.
!!+myNumber
  • Вопрос задан
  • 111 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
isNaN (строковые представления двоичных/восьмеричных/шестнадцатеричных чисел - "0b101"/"0o777"/"0xFF", например - будут сочтены числами)

или /^\d+$/.test(str)

или !str.replace(/\d/g, '')

или `${+str}` === str
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Выглядит конечно фигово, но с условными конструкциями будет еще фиговее. Можно более явно
const res = Boolean(Number(myNumber));
Но мне кажется, вам больше подойдет isFinite
isFinite('123'); // true
isFinite('123sss'); // false

Данная функция сначала преобразует значение в число, и потом проверяет, является ли оно конечным числом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BRAGA96
@BRAGA96
Вот для примера функция jQuery для проверки на валидное число:
function isNumeric(value) {
	var type = typeof value;
	return (type === 'number' || type === 'string') && !isNaN(value - parseFloat(value));
}

isNumeric('2562362') //> true
isNumeric('263621.621561sg') //> false
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы