Регулярное выражение Typescrpt извлекает x, y местоположения - PullRequest
0 голосов
/ 09 апреля 2020

Я использую Typescript, и мне было интересно, могу ли я использовать регулярные выражения для следующих действий.

ввод, который входит в строку

"(0,1)(1,2)(3,1)"

Там Есть довольно много проверок, которые мне нужно сделать в этом

  1. Каждое отдельное значение должно быть числом.
  2. Каждое число не может быть больше значения переменной x, предоставленной во время выполнения .
  3. Если все проверки пройдены, я хочу вывести совпадения в массив и вычеркнуть парантез.

Возможно ли это с помощью регулярных выражений?

1 Ответ

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

Это больше вопрос js - в любом случае вы можете достичь желаемого решения с помощью regexp и дополнительных логик c:

export const validate = (input: string, maxValue: number) => {
    const match = input.match(/\((\d+),(\d+)\)\((\d+),(\d+)\)\((\d+),(\d+)\)/);
    if (match) {
        const results = match.slice(1, 7);
        const pass = results.every(item => Number(item) < maxValue);
        if (pass) {
            return results.map(n => Number(n));
        }
    }

    return false;
};

validate('(1,1)(1,2)(3,1)', 3); // false 
validate('(1,1)(1,2)(3,1)', 5); // [ 1, 1, 1, 2, 3, 1 ]
validate('(1,1)(1,2)(3,1s)', 5); // false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...