javascript - react 计算器 : check if any value exists in string

标签 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
   }))};
}

最佳答案

您可以使用正则表达式和 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/

相关文章:

javascript - Backbone.Layout.extend 和 Backbone.view.extend 的区别

Javascript(或jquery)获取文本区域值的每个图像标签

javascript - 找不到为什么要列出最近 12 个月的这个 js/jQuery 生成 "undefined"警告

reactjs - react - 警告 : Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>

reactjs - 跳跃标记,在 react 原生 map 中跳转到下一个或最近的标记

security - 为什么 React.js 的 API 会警告不要插入原始 HTML?

java - BIRT 报表设计器看不到我的 java 类

reactjs - 将 fetch 与 github api v3 结合使用的正确方法?

reactjs - 如何以编程方式知道 Google AdSense 广告是否成功显示,或者我的 react/next.js 网站是否发生任何错误?

javascript - 在 window.location 上调用 window.onbeforeunload 来下载文件