背景:我们公司使用自家开发的alpha来进行流程管理,每个功能要创建个任务,相应的需求文档要上传附件或评论wiki地址,之后流程通过检查项和评论来进行追踪。ps:任务长得如下,长得还是很美腻滴~
某天,产品大大说了一句话:我们的任务详情和评论支持一下链接的识别吧~支、持、链、接、吧~
确实使用中开发也有这种需求~好的好的,木问题搞起搞起~由于对于正则不是很熟悉就百度下各位大大的实现方案,结果并不是很美好,后来实在伤不起了补了一下正则的知识自己写了个ORZ。。。
最后的实现效果是这样的:输入一段文本将匹配为链接的部分替换成a标签后返回。支持以下几种链接:http://(https://) baidu.cn ,www.baidu.cn , baidu.cn ,192.168.0.126 当然这几种屁股后面还可以加参数神马的,不过只支持主流的(.cn .com .org .net),大家可以自己扩展哈~
方法长这样:
正则太长了。。已被丑哭。。虽然丑用着还好。。在这贴下:
var regurl = /(http:\/\/|https:\/\/)*(http:\/\/|https:\/\/|www\.|[a-z0-9\-]+\.*)(\w+|\.+)(\.cn|\.com|\.net|\.org)((!(\s)|\w|=|\?|\.|\/|&|-|#|%|~|\||:|,|\$)*)/g;
var regip = /(http:\/\/|https:\/\/)*(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])((!(\s)|\w|=|\?|\.|\/|&|-|:|#|%)*)/g;
当然啦,这段也有些局限性不过感觉应对一般的链接是可以滴~
当当当当~~~~~~成果:
ps:第一次写这种类似技术方面的文章,好怕代码烂被大神嫌弃。。ORZ..