【发布时间】:2019-08-14 15:35:43
【问题描述】:
我在字符串中有一个模板,我想用另一个字符串中的值替换一些占位符。对于我替换的每个占位符,我还想插入一个中断标记。
例如,如果在模板中找到#ADDRESS2#,我将使用以下代码将其所有出现替换为字符串val.address2 中的值。
template_html = template_html.replace(/#ADDRESS2#/g, '<br />'+ val.address_2);
但是,在某些情况下,字符串 val.address2 为空。在这种情况下,我不想插入中断标签。
所以我改变了我的代码如下
if( val.address_2.length > 0 ) {
template_html = template_html.replace(/#ADDRESS2#/g, '<br />'+ val.address_2);
} else {
template_html = template_html.replace(/#ADDRESS2#/g, '');
}
是否有更好的方法来编写上述代码,因为我有多个占位符,并且对于每个占位符,我必须编写 2 次代码。
【问题讨论】:
-
因为 jQuery (主要)是一个 DOM 操作库,所以在这里并不重要。我已经删除了那个标签。
-
为什么不在文本和对象中使用相同的模板字符串。它可以更容易地替换为相同的字符串。
-
您能否展示更多您拥有的“多个占位符”?例如。它们是否都非常规则,它们与用于替换的属性名称有什么关系?
-
@nina 是的,我可以将模板更改为与字符串同名。
-
@peter 其他 vplaceholders 像 City、State、zip。如果有帮助,我可以使占位符名称与对象相同
标签: javascript