0

さて、カスタム構文を使用したリンクがあります。これは私のパーサーの一部であり (XSS スクラバーの部分は除きます)、残りのバグの 1 つを特定した問題のあるパーサーです。何らかの理由で、URIhttp://ur.iが単に"i".

ポニーを手に入れる理由を知っている人なら誰でも。

var str = "[inner -> http://ur.i]";

str = str.replace(/\[([^\]]+?)\s*(\||->)\s*((?!->)[^\]])+]/g, function(m, iH, separator, hr){
  console.log('hr: '); console.log(hr);
  return '<a class="'+ (separator.match(/-&gt;/) ? 'adlns-btn' : 'adlns-link') +'" href="'+ hr +'">' +
            iH +
         '</a>';
});

console.log(str);
4

2 に答える 2

1

数量詞は、括弧の外側ではなく、括弧の内側+ある必要があります。

/\[([^\]]+?)\s*(\||-&gt;)\s*((?!-&gt;)[^\]]+)]/g

これで問題は解決します。

于 2012-09-25T17:14:43.263 に答える
0

の後の空白を一致させることができません-&gt;。次のことを試してください。

/\[([^\]]+?)\s*(\||-&gt;)\s*((?!-&gt;\s)[^\]])+]/g
于 2012-09-25T16:47:46.147 に答える