“如何改变”;[“和”和“];按顺序使用javascript还是jQuery?

“如何改变”;[“和”和“];按顺序使用javascript还是jQuery?,javascript,jquery,html,Javascript,Jquery,Html,我想按顺序将“[”更改为 比如说 我有这个: <ul> <li><a href='#'>Example[Fashion][Mega]</a></li> </ul> 我想把它做成这样 <ul> <li><a href='#'>Example<span class='tag-name'>Fashion</span><span class='mega

我想按顺序将
“[”
更改为
  • 比如说

    我有这个:

    <ul>
     <li><a href='#'>Example[Fashion][Mega]</a></li> 
    </ul>
    
    我想把它做成这样

    <ul>
     <li><a href='#'>Example<span class='tag-name'>Fashion</span><span class='mega-type'>Mega</span></a></li>
    </ul>
    
    所以我想用
    第二个带有

    “]”
    使用

    使用
    。使用
    正则表达式多次替换字符串上的
    方法。请注意,默认情况下,此方法会查找第一个匹配项,并用指定的第二个字符串参数替换它

    代码如下:

    $(document).ready(function(){
        var content = $('a').text();
        var newContent = content.replace(/\[/, '<span class="tag-name">')
               .replace(/\]/, '</span>')
               .replace(/\[/, '<span class="mega-type">')
               .replace(/\]/, '</span>');
        $('a').html(newContent);
    });
    
    $(文档).ready(函数(){
    var content=$('a').text();
    var newContent=content.replace(/\[/,'')
    .替换(/\]/,'')
    .替换(/\[/,'')
    .替换(/\]/,'');
    $('a').html(newContent);
    });
    

    查看

    您可以使用
    .replace
    并使用
    g
    标志替换所有

    var a = $('a').text(); 
    var _new = a.replace(/\[/, "<span class='tag-name'>")  //replace 1st"["
                .replace(/\[/, "<span class='mega-type'>") //replace 2nd"["
                .replace(/\]/g, "</span>"); //repace all "]"
    $('a').html(_new);
    

    这里有一种使用
    replace(regExp,repl)

    $('li a').html(函数(i,txt){
    返回txt.replace(/\[(时尚)\]/g,'$1')
    .替换(/\[(兆)\]/g,$1');
    });
    。标记名{
    颜色:红色;
    }
    .巨型{
    字体大小:xx大号;
    }
    
    

    是的,它可以工作,但当我们添加另一个
  • 时,它就不工作了。请看:
    var _new;
    var a;
    $('ul li a').each( function() {
        a = $(this).text();
        _new = a.replace(/\[/, "<span class='tag-name'>")
                .replace(/\[/, "<span class='mega-type'>")
                .replace(/\]/g, "</span>");
        $(this).html(_new);
    });