用先前的状态和正则表达式设置状态

时间:2018-11-10 03:38:35

标签: javascript reactjs

我不了解此代码的工作方式。如何使用正则表达式设置状态?最重要的是,如何知道使用结果变量设置状态?

handleClick(evt) {
    const id = evt.target.id;
    const result = evt.target.value;
this.setState(prevState => ({
        value: `${prevState.value}${result}`
          .replace(/([/+\-/*=])([/+\-*=])/g, "$2")
          .replace(/^0+(?=[1-9])/, "")
          .replace(/^0+(?=\.)/, "0")
          .replace(/^0+\B/, "")
      })); 
}

}

1 个答案:

答案 0 :(得分:0)

因此,此代码执行以下操作:
1.将prevState.valueevt.target.value连接成单个字符串(了解有关ES6 Template literals的更多信息)
2.替换所有组合,例如+++-+*+=-+---*,{{ 1}},-=*+*-***==+=-,{{1} }作为第二个字符(但我认为代码中有错误,replace语句应为=*,详细了解regex
3.从字符串中删除所有以0开头的数字,例如==([\+\-*=])([\+\-*=])等。
4.删除所有以0开头的单词,例如000901等。
5.从字符串中删除所有0a(了解有关\B的更多信息)
6.将结果字符串设置为0000z(了解有关React setState()的更多信息)