jquery包装一个电子邮件地址

时间:2012-02-02 18:15:46

标签: javascript jquery regex

我在文本中有几个电子邮件地址,这些地址保存在变量中。 电子邮件地址采用此格式test[-@-]test.com

现在我想用span元素<span>test[-@-]test.com</span>包装每个电子邮件地址。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

如果您的文本位于变量字符串中,则可以使用正则表达式:

str = str.replace(/([a-z]+\[-@-\][a-z]+\.[a-z]+)/g,'<span>$1</span>');

http://jsfiddle.net/mblase75/yjVFj/

但请注意,matching email addresses with regular expressions can be tricky business

答案 1 :(得分:1)

使用回调函数要好得多:

var wrap = function(text) {  
    $("#Text").html( function(){  
        var patt1= new RegExp(text, "g");  
        return $("#Text").html().replace(patt1, function(match){return "<strong>"+ match +"</strong>"});  
    });  
};  

http://www.javascriptkit.com/jsref/regexp.shtml#replacecallback

相同

答案 2 :(得分:0)

用于创建一个新的span元素,如下所示:

var emailArray = ["test1[-@-]test.com", "test2[-@-]test.com", "test3[-@-]test.com"];
$.each(emailArray, function (index) {
    emailArray[index] = $('<span>' + emailArray[index] + '</span>');
});

答案 3 :(得分:0)

对于普通的vanilla JavaScript:

function wrap(text, element) {
    return document.createElement(element).innerText(text);
}

否则,如果你正在使用jQuery,.wrap('span')jQuery API