Regex将电子邮件地址从字符串包装为mailto
Regex to wrap email address in mailto from a string
想把some text email@address.com
变成some text <a href="mailto:email@address.com">email@address.com</a>
下面是我在替换使用的正则表达式:
'some text email@address.com'.replace(/([a-zA-Z0-9_'.'-]+)@(([[0-9]{1,3}' + ''.[0-9]{1,3}'.[0-9]{1,3}'.)|(([a-zA-Z0-9'-]+'.' + ')+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)/gi, '<a href='mailto:$1'>$1</a>');
正则表达式不能正常工作,请帮助
根据@Toto的建议,您可以使用此正则表达式'S+@'S+
包括电子邮件中除空格外的所有可能(和不可能)字符。
('S+@'S+)
如果只包含英文字符a-z
、数字0-9
、点.
、下划线_
和破折号-
。你可以这样做:
(['w'.'-]+@'w+'.'w+)
如果您想在前面的à è ì ò ù
中添加任何可能的字符,同时排除特殊字符% ^ & *
,则可以使用'pL
,如下所示:
(['w'.'-'pL]+@'w+'.'w+)
最后一个正则表达式的演示:
var Email = "some text email@address.com.";
Email = Email.replace(/(['w'.'-'pL]+@'w+'.'w+)/g, '<a href=mailto:$1>$1</a>');
document.write (Email);
可以使用replace()
函数的replacer函数:
var str = "some text email@address.com";
var regex = /'w+@'w+'.'w+/gi;
var replacedString = str.replace( regex, function(match){
return '<a href="'+match+'">'+match+'</a>';
});
console.log( replacedString );
老问题,但是我在代码中做了类似的事情,并且必须修复电子邮件地址已经包装在mailto链接中的错误。下面是我对这个问题的简单解决方案:
var rx = /([mailto:'w.'-pL]+@'w+.['w.'-pL]+)/gi
return str.replace(rx, function (match) {
return (match.indexOf('mailto') === 0) ? match : `<a href="mailto:${match}">${match}</a>`
})
regex可选地匹配"mailto:", replacer函数检查它是否在匹配中,如果是,则返回未修改的。
相关文章:
- 如何将函数包装在函数中以避免代码重复
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 在'物品包装'
- 如何在jQuery中包装两个元素的组
- 如何在包装功能中咕哝concat
- 正在尝试将标题标记添加到mailto链接,正文中包含URL
- 用类javascript包装span标记中字符串中的字符索引
- 在jquery$({})中包装纯javascript对象
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 如何制作href链接和<李>在一个包装中
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- 如何使用图表包装函数有条件地格式化谷歌可视化表单元格
- Cordova包装应用程序内部链接加载在应用程序中,外部链接加载在浏览器中
- 如何在每个动态创建的ImageButton周围包装超链接?Visual Studio
- 使用Javascript设置库中图像包装器的宽度
- 使用服务工作者动态缓存HTTP URL的包装器
- 如何使图像适合TD,而不需要包装在不同的屏幕分辨率上
- 如何在实时网页中用mailto链接替换电子邮件地址
- Regex将电子邮件地址从字符串包装为mailto