正则表达式replace将不会评估现有变量,返回undefined

时间:2014-09-04 18:57:53

标签: javascript regex

这是我想要做的 -

1)搜索字符串中的模式。说 - [MY-ELEMENT-XYZ]

2)用变量替换模式。 - val.XYZ(val是一个对象,XYZ是第一个正则表达式组)

3)我希望用我已经拥有的对象值替换它。但这变得不明确。

例如 -

 val = {ID: "15452", NAME: "Home", shorturl: "", DATE: "20/08/2014", meta: ""…}

 myHtml = <body>[MY-ELEMENT-ID]<div>[MY-ELEMENT-NAME]</div></body>

 Myreplace = myHtml.replace(/\[MY-ELEMENT-(\w+)\]/gi, **val.$1**);

此处val.$1应替换为val.IDval.NAME,并且应该提供有价值的内容,但它的回复未定义。

任何线索?

1 个答案:

答案 0 :(得分:1)

使用回调函数:

Myreplace = myHtml.replace(/\[MY-ELEMENT-(\w+)\]/gi, function(match, capture1) {
    return val[capture1];
});