吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1397|回复: 12
收起左侧

[求助] js如何替换数学表达式中的字符

[复制链接]
mikasatong 发表于 2021-7-9 14:35
25吾爱币
本帖最后由 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数组,再遍历数组对原始字符串进行替换。

不知道有没有大佬有更简单的方法。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

stu2162583 发表于 2021-7-9 14:35
[JavaScript] 纯文本查看 复制代码
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[match]
})
头像被屏蔽
diaozatian815 发表于 2021-7-9 15:08
WolfAvenue 发表于 2021-7-9 15:11
 楼主| mikasatong 发表于 2021-7-9 15:12
diaozatian815 发表于 2021-7-9 15:08
var filed1 = 1;
var filed2 = 2;
...

可能是我没有描述清楚,"(filed1+filed3+filed4+filed11)/filed2 - file5" 这一串在字符串里面
 楼主| mikasatong 发表于 2021-7-9 15:14
WolfAvenue 发表于 2021-7-9 15:11
没这么简单吧,直接filed替换成 空

你这太偷懒了哟,我只是举个例子 filed1可以是任何数。
stu2162583 发表于 2021-7-9 15:15
[JavaScript] 纯文本查看 复制代码
eval(`(filed1+filed3+filed4+filed11)/filed2 - filed5`.replaceAll('filed', ''))
 楼主| mikasatong 发表于 2021-7-9 15:16
想到了一种解决方案
把所有的表达式 比如 + - *  / ( ) =
全部替换成空格,然后通过空格split得到所有的filed数组,再遍历数组对原始字符串进行替换。

不知道有没有大佬有更简单的方法
 楼主| mikasatong 发表于 2021-7-9 15:17
stu2162583 发表于 2021-7-9 15:15
[mw_shl_code=javascript,true]eval(`(filed1+filed3+filed4+filed11)/filed2 - filed5`.replaceAll('filed ...

我只是举个例子 filed1可以是任何数。不一定就是1
WolfAvenue 发表于 2021-7-9 15:24
mikasatong 发表于 2021-7-9 15:14
你这太偷懒了哟,我只是举个例子 filed1可以是任何数。

正则匹配替换吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表