Javascript正则表达式[url=$1]$2[/url]问题
我有以下regex/javascript代码: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
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]