我在文本中有几个电子邮件地址,它们保存在变量中。电子邮件地址的格式为test[-@-]test.com
。
现在我想用span元素qazxsw poi包装每个电子邮件地址。
我怎样才能做到这一点?
如果您的文本位于变量字符串中,则可以使用正则表达式:
<span>test[-@-]test.com</span>
str = str.replace(/([a-z]+\[-@-\][a-z]+\.[a-z]+)/g,'<span>$1</span>');
使用回调函数要好得多:
matching email addresses with regular expressions can be tricky business
就像在var wrap = function(text) {
$("#Text").html( function(){
var patt1= new RegExp(text, "g");
return $("#Text").html().replace(patt1, function(match){return "<strong>"+ match +"</strong>"});
});
};
用于创建一个新的span元素,如下所示:
http://www.javascriptkit.com/jsref/regexp.shtml#replacecallback
对于普通的vanilla JavaScript:
var emailArray = ["test1[-@-]test.com", "test2[-@-]test.com", "test3[-@-]test.com"];
$.each(emailArray, function (index) {
emailArray[index] = $('<span>' + emailArray[index] + '</span>');
});
否则,如果你正在使用jQuery,function wrap(text, element) {
return document.createElement(element).innerText(text);
}
(.wrap('span')
)