Регулярное выражение: соответствующие десятичные числа в Javascript (для нестроковых переменных) - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь сопоставить десятичные дроби как для строк, так и для чисел с плавающей запятой. Заметил, что приведенный ниже RegEx совпадает с плавающими, заканчивающимися точкой (.), Что не ожидается.

const regex = RegExp("^(\\d*\\.)?\\d+$");
arrTest = ["3.", 3., "4.", 4., "5.5", 5.5];

arrTest.forEach(element => {
    console.log(regex.test(element)) 
});
/*
Result
=======
"3."  - False
 3.   - True (Expecting false since regex should end with a number)
"4."  - False
 4.   - True (Expecting false since regex should end with a number)
"5.5" - True
 5.5  - True
*/

1 Ответ

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

3. - это 3.

Для сопоставления с шаблоном RegExp используются строки . Все, что вы передадите, будет сначала преобразовано в строку. Вы не можете написать 3. в своем коде JavaScript и не иметь этого числа с номером 3, и поэтому при преобразовании в строку становитесь "3".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...