Javascript 如何替换字符串中的多个项目?

Javascript 如何替换字符串中的多个项目?,javascript,regex,replace,Javascript,Regex,Replace,起始字符串: I like [dogs], [cats], and [birds] 所需的最终产出: I like <a href="#">dogs</a>, <a href="#">cats</a>, and <a href="#">birds</a> 我喜欢,而且 因此,基本上是将带括号的项目更改为链接。使用以下表达式: var str = 'I like [dogs], [cats], and [birds]';

起始字符串:

I like [dogs], [cats], and [birds]
所需的最终产出:

I like <a href="#">dogs</a>, <a href="#">cats</a>, and <a href="#">birds</a>
我喜欢,而且
因此,基本上是将带括号的项目更改为链接。

使用以下表达式:

var str = 'I like [dogs], [cats], and [birds]';
alert(str.replace(/\[(.+?)\]/g, '<a href="#">$1</a>'));
var str='我喜欢[狗]、[猫]和[鸟];
警报(str.replace(/\[(.+?)\]/g.);

  • \[(.+?)\]
    请求一个文本
    [
    ,以便惰性地匹配和捕获任何内容,然后匹配一个文本
    ]
    。替换为

    中包含的捕获内容,这是一个简单的字符串替换

    function tagIt(source)
    {
      return source.replace('[', '<a href="#">').replace(']', '</a>');
    }
    
    函数标记(源代码)
    {
    返回源。替换('[','');
    }
    
    @Trufa:我想说的是,远非如此。这就是“?”,注释消失的原因!伟大的解决方案。效果完美。