拆分一个字符串,评估部分并重新加入

时间:2017-04-11 22:03:49

标签: javascript

我试图找出如何用单个字符拆分字符串并使用javascript eval()然后重新加入字符串。

所以我有一个看起来像2 * 2d8 / 2d8的字符串,我将字符串拆分为/,如下所示

remDice.split("/").forEach(function (remDie) {
    console.log(remDie);
});

这给了我两个不同的部分,但我似乎无法弄清楚如何处理由角色d然后eval()分开的下一部分。所以我的最终字符串看起来像4d8/2d8

我知道你应该避免使用eval(),但这并不是这个项目的关注点。

2 个答案:

答案 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);