0

我正在尝试创建自己的 javascript 简单模板函数我想创建一个看起来像这样的 html 页面

<p>
{{HELLO_WORLD}}
<br />
{{MY_NAME_IS}}
</p>

而不是用 javascript 将 {{}} 中的任何内容替换为看起来像这样的 json var

{HELLO_WORLD: "Hello World!", MY_NAME_IS: "My name is"}

我对执行此操作的正确方法有点困惑。关键是制作一个多语言网站,这样我就可以加载所需语言的 json。谢谢。

4

1 回答 1

2

JavaScript 支持基于正则表达式的查找和替换,以及用于替换的函数。所以你可以这样做:

myInputString.replace( /\{\{([^\}]*)\}\}/g, function( s, v ) { return myJSON[v] } );

解释:

replace需要 2 个参数。第一个是正则表达式对象。在这种情况下,我们使用 JavaScript 的/expression/flags语法构建了一个内联。它查找 2 个左大括号(需要对其进行转义,因为它们在正则表达式中具有特殊含义),后跟任何不是右大括号的字符,然后是 2 个右大括号。这g意味着“全局”,因此它将匹配所有情况,而不仅仅是第一个。

找到匹配项时,将调用该函数。第一个参数(我称之为s)是完全匹配的字符串(如“{{abc}}”),第二个(我称之为v)设置为括号中的第一位(如“abc”)。

在实际代码中,您应该添加错误检查(不存在的变量),并可能转换为小写/其他。

完整的细节在replace这里:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

于 2013-07-21T00:06:30.770 回答