javascript提取电子邮件文本部分之前和之后

时间:2016-09-25 14:45:41

标签: javascript string email extract

我需要从字符串中提取电子邮件。 所需的输出是包含电子邮件之前的文本部分的数组, 电子邮件, 以及电子邮件之后的文字。

selection = 'Integer lectus nisi, facilisis sit amet@blabla.test eleifend nec, pharetra ut augue.';

part[0] = 'Integer lectus nisi, facilisis sit ';
part[1] = 'amet@blabla.test';
part[2] = ' eleifend nec, pharetra ut augue.';

到目前为止我所提供的是一个提取电子邮件的功能,但我还需要之前和之后的部分。

function extractEmails(selection){
     return selection.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
};

$output = extractEmails(selection); //returns 'amet@blabla.test'

如何做到这一点?谢谢!

4 个答案:

答案 0 :(得分:0)

你可以这样试试,

var selection = 'Integer lectus nisi, facilisis sit amet@blabla.test eleifend nec, pharetra ut augue.';

var email = selection.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi)[0];

//console.log(email);

var desiredElement = selection.split(email);

Array.prototype.insert = function (index, item) {
  this.splice(index, 0, item);
};

desiredElement.insert(1, email);
console.log(desiredElement);

js fiddle:https://jsfiddle.net/6gg93ff6/5/

答案 1 :(得分:0)

此代码可能对您有所帮助:

newLine: ""

答案 2 :(得分:0)

y

答案 3 :(得分:0)

感谢您的回答和建议!

我可以用以下方法解决:

 function extractEmails(string){
        return string.split(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    };

    function parse(string){
        var i;
        var array = extractEmails(string);
        var myAssociativeArr = [];

        for (i = 0; i < array.length; ++i) {
            var newElement = {};
            if(array[i].match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi)){
                newElement['email'] = '[email_image,string=' + array[i] + ',id=2]';
            }else{
                newElement['text'] = array[i];
            }
            myAssociativeArr.push(newElement);
        }
        console.log(myAssociativeArr);
    }

    var string = 'Integer lectus nisi, facilisis sit email1@blabla.test eleifend nec, pharetra ut augue Duis aute irure dolor in reprehenderit in voluptate velit esse email2@blabla.test cillum dolore eu fugiat nulla pariatur.';
    parse(string);

输出:

[Object { text="Integer lectus nisi, facilisis sit "}, 
Object { email="[email_image,string=email1@blabla.test,id=2]"}, 
Object { text=" eleifend nec, pharetra ...n voluptate velit esse "}, 
Object { email="[email_image,string=email2@blabla.test,id=2]"}, 
Object { text=" cillum dolore eu fugiat nulla pariatur."}]