对括在方括号中的字符串中出现的所有内容运行函数

时间:2014-12-05 13:08:07

标签: javascript regex textarea match contains

我有一个字符串。数据来自文本区域,包含方括号中的(变化的)内容的出现。

我想在方括号中包含的字符串内容上运行函数(例如替换),然后更新原始字符串以反映所做的更改。

实施例

not this [potentially act on this token] not this [potentially act on this token] not this

我认为可能涉及以下某些内容,但我无法弄清楚如何实施有效的解决方案。我不想使用jQuery或外部库。

  • 匹配+ RegEx Something like this
  • 的indexOf。如果无法单独使用RegEx,可能会获得匹配的内容。
  • 每个人。由于方括号中包含许多内容实例。

这是一个起点JSFiddle

如果有人可以提供帮助,我真的很感激。

非常感谢。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情......

var startEnd = user_input.match( /(\[.*?\])/g );

startend现在是一组括号中的值,您现在可以用它们进行搜索/替换。

答案 1 :(得分:1)

所以你的jsfiidle几乎只需要你所需要的东西,除了replace函数可以进行回调。此回调接收一个参数,该参数是匹配的字符串,您返回的任何内容将替换匹配

user_input = user_input.replace(/\[.*\]/gi,function(match){
    return match + "foo";   
});

http://jsfiddle.net/fdtxvyo7/6/