Определить из строки число / ноль / строку
Здравствуйте!
Подскажите, как правильно определить из строки число. Вот для примера у меня три переменных. Изначально все они являются строками: let a = '5'; let b = 'qwerty'; let c = '0'; // ноль Мне нужно '0' и '5' определить как числа. Как правильно делать проверку? if (a ) { // ????? let z = Number(a); } else { let z = a; } У меня есть свои решения которые мне не очень нравятся, поэтому я прошу подсказки решения у более опытных людей. |
MC-XOBAHCK,
if(a == +a) if(typeof +a === 'number') |
рони, спасибо! Реально круто. А я такую чушь писал...
Подскажите, а с нолём этот фокус правильно отработает? Мне нужно ноль загонять как число. |
Цитата:
let a = '000001', b = '0'; alert([+a == a, typeof +a === 'number',+b == b, typeof +b === 'number'] ); |
Я проверяю. Но в js ведь есть много разных ньюансов и странных поведений. Вы же вот не зря значение 000001 показали. В +a == a оно дало true. Поэтому я спрашиваю у опытных людей.
Вон и в учебнике чуть ли не на каждой странице есть раздел с особенностями в поведении. |
const isnum = (n )=> !isNaN(n - parseFloat(n)) alert([isnum('0'), isnum(''), isnum('0.0000000001')]) |
voraa, круто, а я когда-то такую хрень писал:
export function isNumber(value) { if (typeof value === 'symbol') { return false; } const val = '' + value; return !isNaN(parseFloat(val)) && val.replace(/[^\d.]+?/gim, '').length === val.length; } |
|
Часовой пояс GMT +3, время: 00:02. |