Javascript令牌转换

时间:2013-01-02 19:31:58

标签: javascript regex token replace

希望获得一个JS替换函数来将[[...]]更改为myFunction('...')。

"player.email = '[[UserID]]@email.com';"

成为:

"player.email = '" + myGetterFunction('userid') + "@email.com';"

[[]]成为myFunction('') 和[[]]中的值变为小写


假设

  • 整个字符串将用双引号括起来
  • 内只有单引号和转义引号
  • 值“UserID”将始终更改,并且可以包含空格和除[[和]]对之外的其他非alpaNumeric字符。

有人能指出我这个大多数通用设置的方向吗?难以理解的部分是在不做一些疯狂分裂的情况下降低[[]]的内容。确定一些Ninja正则表达式已经存在用于令牌替换(到目前为止我看到的样本正在替换每个令牌的特定值,我只想转换令牌和包装器。

1 个答案:

答案 0 :(得分:0)

您可以使用替换功能处理捕获的组:

str.replace(/\[\[(.*?)\]\]/g, function(text) {
    return myGetterFunction(text.toLowerCase());
});

/\[\[(.*?)\]\]/g可能看起来很复杂,但它实际上只是一堆转义的方括号。 (.*?)是一个非贪婪的捕获组。