反应计算器:检查字符串中是否存在任何值

时间:2018-11-11 07:01:22

标签: javascript reactjs

无论如何,我是否可以检查字符串中是否存在多个值?我的想法是只有两个条件: 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
   }))};
}

1 个答案:

答案 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 
}