示例: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;
}