1

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

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

成为:

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

[[ ]] 变为 myFunction('') 并且 [[]] 中的值变为小写


假设

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

任何人都可以为我指出一个最通用的设置方向吗?难倒我的部分是将 [[]] 的内容小写而不做一些疯狂的拆分。确定一些 Ninja Regex 已经存在用于令牌替换(到目前为止我看到的样本正在替换为每个令牌的特定值,我只想转换令牌和包装器。

4

1 回答 1

0

您可以使用替换函数来处理捕获的组:

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

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

于 2013-01-02T19:36:12.527 回答