我是否可以检查字符串中是否存在多个值?我的想法是只有两个条件: 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
}))};
}
最佳答案
您可以使用正则表达式和 String.prototype.search() 来完成此操作。
正则表达式 /([-+*/]\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
}
关于javascript - react 计算器 : check if any value exists in string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53246546/