用数组替换模板中的字符串

贝图斯

我有这个模板:

var temp = "<div class="${class}" id="loc" data-res="${res}"></div>";

并且我想用数组替换$ {res},所以以后可以做类似的事情:

$('#loc').data('res');

我尝试了这个:

var res = [["a","b"],["c","d"]];
var arr = { class: "bold", res: res};
var newtemp = rep(temp, arr);

function rep(temp, arr) 
        {
            return temp.replace(/\$\{([\w]+)\}/g, function(s1, s2) { 
                var s = arr[s2]; 
                if (typeof (s) != "undefined"){ 
                    return s; 
                } else { 
                    return s1; } 
            });
        }

但是没有办法...对于$ {res}来说,保持格式像数组一样。我想要这个结果:

<div class="bold" id="loc" data-res='[["a","b"],["c","d"]]'></div>
阮阮

您可以检查变量s是否为数组,然后根据需要使用JSON.stringify()将该数组保持为字符串格式。

但是您的temp变量存在一些问题。它在双引号内包含双引号。在预期结果示例中,您同时使用双引号和单引号。因此,我建议将temp变量更改为:

var temp = `<div class="$class" id="loc" data-res='$res'></div>`;

并更改您正在使用的正则表达式。最终rep功能将是:

function rep(temp, arr) {
    return temp.replace(/\$([\w]+)/g, function (s1, s2) {
        var s = arr[s2];
        if (typeof (s) != "undefined") {
            return Array.isArray(s) ? JSON.stringify(s) : s;
        } else {
            return s1;
        }
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用对象属性替换模板字符串中的键

来自分类Dev

用linq替换字符串数组中的字符

来自分类Dev

用linq替换字符串数组中的字符

来自分类Dev

PHP用数组中的值替换字符串

来自分类Dev

用Twig中的数组值替换字符串

来自分类Dev

用numpy数组中的字符串替换int

来自分类Dev

用数组值替换字符串中的文本

来自分类Dev

PHP用数组中的值替换字符串

来自分类Dev

用数组中的对象替换字符串

来自分类Dev

用数组中的值替换子字符串

来自分类Dev

Bash:用数组替换文件中的字符串

来自分类Dev

PHP中的模板字符串替换

来自分类Dev

替换字符串中的字符数组

来自分类Dev

替换字符串中的字符数组

来自分类Dev

用C中的多个字符替换字符串(char数组)中的字符

来自分类Dev

用C中的多个字符替换字符串(char数组)中的字符

来自分类Dev

用数组php中的字符串列表替换字符串

来自分类Dev

用Java中的字符串替换字符串

来自分类Dev

用Excel中的字符串替换字符串

来自分类Dev

用Django模板中的另一个字符串替换字符串

来自分类Dev

Scala中字符串的字符串替换数组

来自分类Dev

替换多维数组中的字符串

来自分类Dev

替换字符串数组中的条目

来自分类Dev

替换字符串数组中的数字

来自分类Dev

替换数组中的字符串

来自分类Dev

用Jinja2中的模板输出替换字符串

来自分类Dev

用Python中的多个条件替换数组中的字符串值

来自分类Dev

PHP-用数组中的相应值替换字符串中的项目

来自分类Dev

用替换功能替换xslt 2.0中的字符串