1

これまでのところ、存在しないはずのコンテンツを置き換えるための正規表現を使用したコードがあります 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があると述べています>

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>';
     }
4

1 に答える 1

1

括弧で囲まれたものを 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);
于 2013-06-30T19:55:58.857 に答える