Регулярное выражение для проверки длины номера с использованием javascript и допустимой длины от 6 до 8 - PullRequest
1 голос
/ 29 апреля 2019

Я хочу проверить, существует ли длина номера между 6 и 8, я пробовал разными способами, но она не работает для меня. Может ли кто-нибудь помочь мне с этим?

Мой код:

Метод 1:

regex = RegExp(/[-]{0,1}[\d{6,8}]*[\.]{0,1}[\d{6,8}]+/g),

Метод 2:

regex = RegExp(/[-]{0,1}[\d]{6,8}*[\.]{0,1}[\d]{6,8}+/g),

Я пробовал два выше способа, но ничто не помогло мне в этом. Пожалуйста, помогите мне с решением.

Ответы [ 3 ]

4 голосов
/ 29 апреля 2019

Если вы хотите обнаружить строки, содержащие только 8 цифр, где угодно, то рассмотрите такой подход:

var number = "314159.32";
if (/^-?[0-9]+(?:\.[0-9]+)?$/.test(number) &&
    /^[0-9]{6,8}$/.test(number.replace(/[.-]/g, ""))) {
        console.log("valid");
}
else {
    console.log("invalid");
}

Сложность использования одного регулярного выражения здесь - это дополнительный десятичный компонент, который может появляться или не появляться.Но если предположить, что входные данные являются числом и не имеют десятичной составляющей, тогда необходим шаблон регулярного выражения.

1 голос
/ 29 апреля 2019

Ваше описание не соответствует вашим попыткам.

Как правило, вы используете классы символов без необходимости. Попробуйте это, что соответствует числам от 6 до 8 цифр, необязательно с предшествующим -:

regex = RegExp(/-?\d{6,8}/g);

Если есть другие шаблоны, которые вы хотите сопоставить, опишите их и добавьте примеры.

0 голосов
/ 29 апреля 2019

Ваш вопрос не очень понятен, пожалуйста, предоставьте несколько примеров действительных строк.Но не могу предложить вам использовать это регулярное выражение:

^\d{6,8}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...