我试图找出如何用单个字符拆分字符串并使用javascript eval()
然后重新加入字符串。
所以我有一个看起来像2 * 2d8 / 2d8的字符串,我将字符串拆分为/
,如下所示
remDice.split("/").forEach(function (remDie) {
console.log(remDie);
});
这给了我两个不同的部分,但我似乎无法弄清楚如何处理由角色d
然后eval()
分开的下一部分。所以我的最终字符串看起来像4d8/2d8
。
我知道你应该避免使用eval()
,但这并不是这个项目的关注点。
答案 0 :(得分:3)
可能的解决方案:
var str = '2*2d8/2d8',
str2 = str.split('/').map(v => v.split('d').map(c => eval(c)).join('d')).join('/');
console.log(str2);
答案 1 :(得分:1)
更新@Kind用户的解决方案,因为我认为原始Q预期会有一些不同的结果。
var str = '2*2d8/2d8',
str2 = str.split('/').map(v => {
s = v.split('d')
return eval(s[0]) + 'd' + eval(s[1])
}).join('/')
console.log(str2);