正则匹配网址

2015-07-07  本文已影响82人  金声玉振

leeiio.me/url-in-text-regexp/
var text="你好,我是一段文本。我链接到http://leeiio.me/test.html请大家多多指教。";

var regexp=/((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)/ig;

text=text.replace(regexp, "<a  href='$1'> $1 <a>");

console.log(text);

但是如果URL中有中文呢?虽然我们不应该用中文作为URL的一部分,已经把中文部分encode掉,但是很多人比如粗心的写wordpressd的人,通常不指定Slug,那么很多URL自然也就带上了标题的中文了。可以改成:

var regexp=/((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\u4e00-\u9fa5\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)/ig;

但是如果有日语呢?韩语呢?所以。。。

自己改进到更加适配的版本:

上一篇 下一篇

猜你喜欢

热点阅读