无论如何,我是否可以检查字符串中是否存在多个值?我的想法是只有两个条件: a)如果没有小数,将其添加; b)如果有一个运算符(+-* /),然后是0到9之间的一个数字,请将其添加。 仅当满足这两个条件之一时,才添加小数。我可以使用哪种字符串方法?
handleDecimal(evt){
const result = evt.target.value;
let value = this.state.value;
if (value.indexOf('.') === -1){
this.setState(prevState => ({
value: this.state.value + result
}))};
}
答案 0 :(得分:1)
您可以使用正则表达式和String.prototype.search()完成此操作。
RegEx /([-+*/]\d)/
将匹配运算符,后跟任意数字。
如果即使在存在小数的情况下也要添加小数,但也要有一个运算符,后跟数字:
if (value.indexOf === '-1' || value.search(/([-+*/]\d)/) > -1) { //add decimal }
如果最终字符串中最多只能有一个小数:
if (value.indexOf === '-1') {
//add decimal
} else if (value.search(/([-+*/]\d)/) > -1) {
//add decimal
}