jquery包装一个电子邮件地址
我在文本中有几个电子邮件地址,它们保存在变量中。 电子邮件地址是这种格式test[-@-]test.com
现在我想用span元素test[-@-]test.com
包装每个电子邮件地址test[-@-]test.com
怎么能我这样做?
如果您的文本位于变量字符串中,则可以使用正则表达式:
str = str.replace(/([az]+\[-@-\][az]+\.[az]+)/g,'$1');
http://jsfiddle.net/mblase75/yjVFj/
但请注意, 将电子邮件地址与正则表达式匹配可能会非常棘手 。
使用回调函数要好得多:
var wrap = function(text) { $("#Text").html( function(){ var patt1= new RegExp(text, "g"); return $("#Text").html().replace(patt1, function(match){return ""+ match +""}); }); };
如http://www.javascriptkit.com/jsref/regexp.shtml#replacecallback
用于创建一个新的span元素,如下所示:
var emailArray = ["test1[-@-]test.com", "test2[-@-]test.com", "test3[-@-]test.com"]; $.each(emailArray, function (index) { emailArray[index] = $('' + emailArray[index] + ''); });
对于普通的vanilla JavaScript:
function wrap(text, element) { return document.createElement(element).innerText(text); }
否则,如果你正在使用jQuery, .wrap('span')
( jQuery API )