Как сделать числовой отрицательный / положительный диапазон от -47 до 1123 в регулярных выражениях? - PullRequest
1 голос
/ 24 апреля 2019

Я хочу сделать числовой диапазон с отрицательным числом для положительного числа, используя только 4 варианта (|).

Это то, что я сделал до сих пор:

^[-+]?(?:-[0-9]|[0-9]|[0-7]?)$

Я хочу, чтобы диапазон принимал числа от -47 до 1123. Спасибо.

1 Ответ

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

Это было нелегко ... но я думаю, это поможет.

^(-4[0-7]|-[0-3]?[0-9])$|^(112[0-3]|11[01][0-9]|10[0-9]{2}|0?[0-9]{1,3})$

посмотреть вживую: https://regex101.com/r/bFzBwZ/1

const regex = /^(-4[0-7]|-[0-3]?[0-9])$|^(112[0-3]|11[01][0-9]|10[0-9]{2}|0?[0-9]{1,3})$/mg;
const str = `1123
1124
47
1122
0
11
-12
-78
-47
-33
-48
-11
-1
-3
-1
-2
-3
-4
-5
-14
-211
-471
-46`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...