javascript - 将 HREF 替换为标签之间的内容(使用电子邮件表达式)

标签 javascript jquery html regex hyperlink

因此,在上一个问题中,我了解到您可以抓取链接标记之间的内容并将其放置在 HREF 中:

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

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

我对正则表达式没有太多经验,所以任何建议和指导都会很棒。

谢谢!

最佳答案

首先您需要使用正则表达式检查电子邮件。然后将电子邮件传递给该函数进行测试。如果结果为 true,则在 href 开头添加“mailto:”;如果结果为 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);
}

关于javascript - 将 HREF 替换为标签之间的内容(使用电子邮件表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29017494/

相关文章:

javascript - 每个条目具有背景颜色填充和边框的 Css Textarea 文本

javascript - 如何知道JavaScript中的按钮是否被点击?

javascript - 如何避免 angularjs 选择中的空自动选项?

javascript - 如何在AngularJS中获取按钮标签?

javascript - 滚动到多个 anchor

javascript - 在表单提交jquery之前删除空值

php - div标签内的水平循环mysql

javascript - CSS3 背景不重复

javascript - 向上滚动时的 jQuery 透明菜单

javascript - 如何重复使用小型 html 标记?