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 )