js如何替换数学表达式中的字符
本帖最后由 mikasatong 于 2021-7-9 15:31 编辑比如公式是一个字符串" (filed1+filed3+filed4+filed11)/filed2 - file5" ,其中filed个数不定,但都是filed开头,只是后面的数字不一样假设 filed1是6,filed2是8,filed3是9,filed4是10,filed5是12,filed11是46
最后如何替换成"(6+9+10+46)/8-12"
之前误导了数字的值,导致大家都认为替换filed就可以,现在把数字打乱了。
我目前想到的一种解决方案:
把所有的表达式 比如 + - */ ( ) =
全部替换成空格,然后通过空格split得到所有的filed数组,再遍历数组对原始字符串进行替换。
不知道有没有大佬有更简单的方法。
var m = { filed1:6,filed2:8,filed3:9,filed4:10,filed5:12,filed11:46};
`(filed1+filed3+filed4+filed11)/filed2 - filed5`.replace(/(filed\d+)/g, function(match) {
return m
}) 没这么简单吧,直接filed替换成 空{:301_1001:} diaozatian815 发表于 2021-7-9 15:08
var filed1 = 1;
var filed2 = 2;
...
可能是我没有描述清楚,"(filed1+filed3+filed4+filed11)/filed2 - file5" 这一串在字符串里面 WolfAvenue 发表于 2021-7-9 15:11
没这么简单吧,直接filed替换成 空
你这太偷懒了哟,我只是举个例子 filed1可以是任何数。 eval(`(filed1+filed3+filed4+filed11)/filed2 - filed5`.replaceAll('filed', '')) 想到了一种解决方案
把所有的表达式 比如 + - */ ( ) =
全部替换成空格,然后通过空格split得到所有的filed数组,再遍历数组对原始字符串进行替换。
不知道有没有大佬有更简单的方法 stu2162583 发表于 2021-7-9 15:15
eval(`(filed1+filed3+filed4+filed11)/filed2 - filed5`.replaceAll('filed ...
我只是举个例子 filed1可以是任何数。不一定就是1:lol mikasatong 发表于 2021-7-9 15:14
你这太偷懒了哟,我只是举个例子 filed1可以是任何数。
正则匹配替换吧
页:
[1]
2