Javascript正则表达式[url=$1]$2[/url]问题

Javascript正则表达式[url=$1]$2[/url]问题,javascript,regex,Javascript,Regex,我有以下regex/javascript代码: toReturn = toReturn.replace(/(\[url=)(.+)(\])(.+)(\[\/url\])/g, '<a target=\"_blank\" href="\$2">\$4</a>'); 它将第一个[url=]与最后一个[url]链接,只生成一个错误的url 如何修复此问题?使用(.+?)而不是(.+),使量词变懒。如果用户输入[url=javascript:location=http://ev

我有以下regex/javascript代码:

toReturn = toReturn.replace(/(\[url=)(.+)(\])(.+)(\[\/url\])/g, '<a target=\"_blank\" href="\$2">\$4</a>');
它将第一个[url=]与最后一个[url]链接,只生成一个错误的url


如何修复此问题?

使用
(.+?)
而不是
(.+)
,使量词变懒。

如果用户输入
[url=javascript:location=http://evil.org][/url]
[url=“>那你就完蛋了。我该如何阻止Mike Samuel呢?通过协议白名单URL,并使用实体转义正确地编码HTML属性值和HTML文本节点。对于白名单协议,只需确保只匹配以批准的协议开头的URL:
(.+)
->
(?:http | https | mailto)://.*?
。若要正确编码属性值和文本节点,请将
'
替换为
函数(uu,u,url,u,link_utext){return'}
其中
htmlEscape
函数htmlEscape{return s.replace(//&/g',&;')。replace(/“/g',”)。replace(///g',”)。replace(///g',)}
[url=example]example[/url]
some_other_text
[url=example2]example2[/url]