获取()中的内容并在以后使用它

时间:2013-06-30 19:46:07

标签: javascript jquery regex

到目前为止,我有一个使用正则表达式的代码来替换不应该存在的内容EX:

var a = $('.uTubeE').attr('href').replace(/\(((\s*?.*?)*?)\)/g,'');
        $('.uTubeE').attr('href',a).text(a).attr('title',$1);

要从中删除的文字:

<a href="www.url.com(content)">www.url.com(content)</a>

正如您所看到的,我正在尝试使用我删除的内容作为title属性,我知道var a是错误的,因为我正在替换内容。我不知道如何抓住它,因为一旦我这样做,我就可以这么做 -

  var correct= $('.uTubeE').attr('href').replace($1);
  $('.uTubeE').attr({
     href: correct,
     title: $1
     }).text(correct);

只是不确定如何正确地完成所有操作。

有关使用正则表达式的任何建议和帮助吗?

新版本声明有0个未定义的&gt;

var a = $(forum[yourVersion]+' a[href*="watch?v"]');
  for (i = 0; i < a.length; i++) {
     var xyx = a[i].href.match(/\(((\s*?.*?)*?)\)/);
     var b = a[i].href.replace(new RegExp("watch\\?v=", "i"), 'v/');
     a[i].href= b;
     var cc = b.replace(/(www\.)?youtube.com/, 'img.youtube.com');
     var dd = cc.replace('v','vi').replace(xyx[0],'');
     a[i].outerHTML= '<a class="uTubeE" rel="vid_gallery" title="'+xyx[1]+'" href="' + b + '"><span class="uTubeE_overlay"></span><img src="'+ dd +'/0.jpg"/></a>';
     }

1 个答案:

答案 0 :(得分:1)

假设只有一个带括号的东西要删除,请使用exec

var href = $('.uTubeE').attr('href');
var match = /\(((\s*?.*?)*?)\)/.exec(href);

现在您的内容位于match[1],您可以通过

修复href
href =
    href.substring(0, match.index) +
    href.substring(match.index + match[0].length);
$('.uTubeE').attr('href', href);