разрешить [0-9] числа, p и% s в регулярном выражении - PullRequest
0 голосов
/ 24 октября 2019

Пример: 12, 2p, 2%s - эти входные значения должны быть разрешены.

Я использую это регулярное выражение [/^([0-9\.]|[p|%s])*$/], и оно позволяет %s, s, p и %p.

Я пробовал с [/^[0-9]*%s$], который отлично работает тестером регулярных выражений, не работает в моем коде. Есть ли что-нибудь, что мне нужно, чтобы внести изменения в регулярное выражение, чтобы работать в реагировать.

1) Это позволяет пользователю вводить несколько десятичных знаков 2.2.2.2

2) Может набирать несколько p, s, %

Как не набирать вышеописанные сценарии.

Редактировать: Это регулярное выражение [/ ^ \ d + (?:. \ D +)? (?: p |% s)? $ /] работает нормально, когда я тестирую, но когда реализован в коде, не позволяющем мне ввести% s и десятичное значение

, вот мой код

 onValueChange(event: any) {

   const re=/^\d+(?:\.\d+)?(?:p|%s)?$/
         if (event.target.value === '' || re.some(regEx => event.target.value.search(regEx) > -1)) {
    this.setState({ tempValue: event.target.value } as Ipreservice);
}

if (inputValue.indexOf(p) >= 0) {
        tempValue = inputValue.replace(new RegExp(p, 'g'), '');
displayUnit = DisplayUnit.p;
        }else if (inputValue.indexOf(%s) >= 0){
      tempValue = inputValue.replace(new RegExp(%s, 'g'), '');
        displayUnit = DisplayUnit.s;
    } else if (!isNaN(Number(inputValue))) {
            tempValue = inputValue;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...