我正在尝试创建自己的 javascript 简单模板函数 我想创建一个如下所示的 html 页面
<p>
{{HELLO_WORLD}}
<br />
{{MY_NAME_IS}}
</p>
然后用 javascript 替换 {{}} 中的任何内容 带有如下所示的 json var
{HELLO_WORLD: "Hello World!", MY_NAME_IS: "My name is"}
我对执行此操作的正确方法有点困惑。 重点是创建一个多语言网站,这样我就可以加载所需语言的 json。 谢谢。
最佳答案
JavaScript 支持基于正则表达式的查找和替换,并具有替换函数。所以你可以这样做:
myInputString.replace( /\{\{([^\}]*)\}\}/g, function( s, v ) { return myJSON[v] } );
解释一下:
replace
有 2 个参数。第一个是正则表达式对象。在本例中,我们使用 JavaScript 的 /expression/flags
语法构建一个内联。它查找 2 个左大括号(需要转义,因为它们在正则表达式中具有特殊含义),后跟任何不是右大括号的字符,然后是 2 个右大括号。 g
表示“全局”,因此它将匹配所有情况,而不仅仅是第一个情况。
当找到匹配项时,将调用该函数。第一个参数(我称之为 s
)是完全匹配的字符串(如“{{abc}}”),第二个参数(我称之为 v
)设置为括号中的第一位(如“abc”)。
在实际代码中,您应该添加错误检查(不存在的变量),并可能转换为小写/其他。
有关替换
的完整详细信息位于:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
关于javascript - 如何搜索 {{.*}} 并替换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767833/