结合过滤器和正则表达式

时间:2014-11-25 09:27:43

标签: jquery regex filter

我想用括号

替换括号中的标签内容

示例文字

<a href="#">Linkname [subtitle]</a>

结果应为

<a href="#">Linkname <span class="subtitle">subtitle</span></a>

到目前为止我尝试过:

jQuery(document).ready(function() {
    jQuery( "a" )
        .contents()
        .filter(function(){
            return this.match(\[.*\]);
        })
    .wrap( "<span class='subtitle'></span>" );
});

但我收到错误“Uncaught SyntaxError:Unexpected token ILLEGAL”

2 个答案:

答案 0 :(得分:1)

你可以这样做

$('a').html(function(_,html){
   return html.replace(/\[(.+?)\]/g, "<span class='subtitle'>$1</span>");
});

答案 1 :(得分:0)

var re = /\[([^\]]*)\]/g;
var str = '<a href="#">Linkname [subtitle]</a>';
var subst = '<span class=\'$1\'>$1</span>"';

var result = str.replace(re, subst);

参见演示。

http://regex101.com/r/rA7aS3/4