Javascript - Как преобразовать строку '0' в число 0 - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь сделать обработку ошибок на 2 входных значениях. Я использую регулярное выражение, чтобы подтвердить, что ввод всегда является числом. Проблема, с которой я столкнулся, заключается в том, что я не хочу, чтобы моя обработка ошибок включалась, если пользователь буквально вводит 0. Сейчас я использую:

number = parseInt(incomingValue) || ""

, чтобы установить мою переменную. Проблема в том, что это превращает '0' в ""

Хорошо, если пустое значение становится пустой строкой, потому что я отключаю проверку ошибок, когда длины равны 0, но мне нужно Правильно превратить '0' в число 0. У кого-нибудь есть идеи?

Кроме того, я также хотел бы превратить '000' (и т. Д.) В число 0

Ответы [ 3 ]

3 голосов
/ 02 апреля 2020

Вы можете превратить '0' или '000' в число, просто выполнив:

parseInt('0');   // 0
parseInt('000'); // 0

Причина, по которой ваш код не работает, заключается в том, что javascript рассматривает 0 как ложное значение, поэтому, когда вы сделаете это:

const number = parseInt('0') || ""

выражение parseInt('0') вернет 0, что составляет falsy . В результате будет выполнен || "", который установит number в "". Вам нужно будет разделить parseInt и задание по умолчанию, чтобы достичь желаемого.

0 голосов
/ 02 апреля 2020

Вы можете попробовать typeof, чтобы различить guish тип переменной, которую вы получаете

typeof true === 'boolean'

typeof null === 'object'

typeof 62 === 'number'

typeof 'Hello World' === 'string'

0 голосов
/ 02 апреля 2020

Вы можете использовать parseInt(incomingValue), чтобы получить значение int. Для сравнения вы можете использовать === для одинакового значения и равного типа означает, что (incomingValue === 0) будет true в случае incomingValue = 0.

...