用标签之间的内容替换HREF(带有电子邮件的表达式)

时间:2015-03-12 18:24:51

标签: javascript jquery html regex hyperlink

所以在上一个问题中,我得到了帮助,了解到你可以抓住链接标签之间的内容并将其置于HREF中:

$('a').attr('href', function () {
return 'http://' + $(this).text()})

但是,我需要更多帮助:我需要确定标签之间的文本何时是电子邮件,以便将其变为mailto:href。

我对reg表达方式没有多少经验,所以任何建议&方向会很棒。

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,您需要使用正则表达式检查电子邮件。然后将电子邮件传递给该功能进行测试。如果结果为真,请将" mailto:"在href的开头,如果结果为false,则添加" http://"在开始。

 if(checkEmail($('a').text()))
     $('a').attr('href', "mailto:"+$('a').text())
 else
    $('a').attr('href', "http://"+$('a').text());



function checkEmail(email) {
  var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return re.test(email);
}