‘回一趟长安?’崔圆沉思起来,他慢慢走到窗前,望着窗外片片浓绿,眼中若有所思。

javaScript识别网址文本并转为链接文本


最近项目有个需求:用户之间发送消息时,如果发送者输入的信息中含有网址文本,要在接受者界面中显示网址链接,点击该链接直接跳转到网页。
这个功能和 QQ 发送网址文本的效果非常像,可以说是一模一样的。

 

思路:首先,要判断文本中是否含有网址文本,其次,将网址文本转换为可点击的链接文本,即将网址文本通过a标签括起来。

 

判断网址:

在 javaScript 中判断某种特殊格式的文本,首选正则表达式,下面是我用来检查网址的正则:

var re = /^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/g;

这里需要注意的是,正则必须使用全局匹配 g 。否则只能匹配到文本中的第一个网址文本。

 

网址转换为链接文本:

在网址转换中涉及字符串的操作,那么自然要使用 String 对象的方法,先复习下 String 对象能与正则表达式一起使用的方法有哪些?
常用的有这几个:

search:检索与正则表达式相匹配的值。
match:找到一个或多个正则表达式的匹配。
replace:替换与正则表达式匹配的子串。
split:把字符串分割为字符串数组。

可以看出来,其中 replace 是最方便、最适合这个需求的。

 

replace函数的使用方法:

语法:

string.replace(searchvalue,newvalue)

参数解析:

searchvalue:必须。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

newvalue:必需。一个字符串值。规定了替换文本或生成替换文本的函数。

注意:第二个参数支持使用函数来制定文本替换的规则。

 

回顾需求,要将网址转换为a链接,那么得到的转换规则如下:

url => <a href="url" target="_blank">url</a>

 

根据上面的分析过程,使用代码来描述如下:

var urlToLink = function(str){
    var re = /^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/g; 

str = str.replace(re, function(website){
return "<a href="" + website +"" target="_blank">" + website + "</a>";
});
return str;
};

 

到这里,javaScript识别网址文本并转为链接文本的函数接完成了。

当前文章:http://hnhdqp.com/content/2018-11/17/content_14088.html

发布时间:2018-12-10 10:57:39

华莱士兼职工资 淘宝网络兼职哪里找 手机兼职吧百度贴吧 安庆桐城学生兼职兼职 晚上有什么兼职可以做 打擦边球的生意 2018可做的生意 适合晚上的生意 公园适合做什么生意 有没有小本生意

编辑:石乙通

相关新闻

如风达李红义:用互联网思维抢占电商最后一公里

2018-12-10 10:55:19

昌都涡郧建筑材料集团有限公司

平安WiFi戎国强:用户体验永远是第一位的

2018-12-10 08:33:54

天水馅凑科技有限公司

感动榆林人物杨钝:36年义务教出数千聋哑学生

2018-12-10 02:28:47

吕梁寐费教育咨询有限公司

横山公安清网专项行动全市第二

2018-12-10 17:49:55

河池刑蕉航天信息有限公司

热门推荐

  • 校长妈妈童心育人陪伴"白海豚中队"观影度六一(组图)
  • 惊险!南航旅客携带充电宝起火,网友:涉事旅客需承担责任
  • 山东代村王传喜:打造全国首个“国家农业公园”
  • 更换一个苹果iPhone的零件,利润究竟有多大?
  • 微软雅黑背后的秘密:并非免费,字体侵权要赔几万块
  • 易鑫超额认购560倍,定价为区间上限7.7港元
  • 搜狗上市首日:股价最高上涨逾10%
  • 腾讯QQ:将设60亿元资金扶持年轻创业者
  • 《银河护卫队》导演亲自出马:为漫威和DC粉劝架
  • 怎样优雅回怼“手伸得太长”? 外交部新词亮了
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:在家能做的小本生意 微信公众号发文章赚钱
  • 任务赚钱网站 copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 一部手机如何赚钱 深圳偏门赚钱工作 可靠的国外点击赚钱 调查网站赚钱排行榜