2012-09-25 21 views
0

好的,所以我有一個鏈接使用我的自定義語法。這是我的解析器的一部分(不支持XSS清除器部分),並且這是問題所在,我已經隔離了其中一個剩餘的錯誤。由於某種原因,URI http://ur.i正在被截斷爲僅僅"i"爲什麼這些URI被切斷爲「我」?

任何人知道爲什麼得到一匹小馬。

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); 

回答

1

+量詞應該是括號,不

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

這解決了這個問題。

0

你缺乏-&gt;後的空白匹配,請嘗試以下操作:

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

沒有。看到我的答案是真實的問題。 – wwaawaw

相關問題