在正则表达式中允许[0-9]个数字,p和%s

时间:2019-10-24 12:14:53

标签: javascript regex reactjs

示例:122p2%s-这些输入值需要允许。

我正在使用此正则表达式[/^([0-9\.]|[p|%s])*$/],它也允许%ssp%p

我尝试使用[/^[0-9]*%s$],它可以很好地运行正则表达式测试器,但不适用于我的代码。我需要在正则表达式中进行更改以进行反应吗?

1)它允许用户键入多个小数2.2.2.2

2)可以键入多个ps%

如何避免输入上述情况。

编辑:此正则表达式[/^\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;
        }

0 个答案:

没有答案