2012-09-25 24 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

相关问题