Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:提取电子邮件地址的部分内容并拆分为多个部分_Javascript_Regex - Fatal编程技术网

JavaScript:提取电子邮件地址的部分内容并拆分为多个部分

JavaScript:提取电子邮件地址的部分内容并拆分为多个部分,javascript,regex,Javascript,Regex,如果在许多公司中都有一个点,那么如何提取电子邮件地址的一部分,并将其拆分为多个部分,再拆分为名字和姓氏 输入1 输入2 通缉输出1 通缉输出2 我在下面用一个正则表达式和一个if子句给出了我的答案,它检查电子邮件中的点。但也许有一个正则表达式可以达到同样的结果 函数GetEmailParts(strEmail){ function GetEmailParts( strEmail ){ var objParts = { user: null, firstN

如果在许多公司中都有一个点,那么如何提取电子邮件地址的一部分,并将其拆分为多个部分,再拆分为名字和姓氏

输入1 输入2 通缉输出1 通缉输出2 我在下面用一个正则表达式和一个if子句给出了我的答案,它检查电子邮件中的点。但也许有一个正则表达式可以达到同样的结果

函数GetEmailParts(strEmail){
function GetEmailParts( strEmail ){

    var objParts = {
        user: null,
        firstName: null,
        LastName: null,
        domain: null,
        tld: null
        };

    strEmail.replace( 
        new RegExp("^([a-z\\d._%-]+)@((?:[a-z\\d-]+\\.)+)([a-z]{2,6})$", "i"),

        function( $0, $1, $2, $3 ) {
            objParts.user = $1;  

            if ($1.length > 1) {
                $1 = $1.split(".");
                for(var i = 0; i < $1.length; i++){

                    $1[i] = $1[i].substring(0,1).toUpperCase() + $1[i].substring(1,$1[i].length);
                }
                objParts.firstName = $1[0];
                objParts.lastName = $1[1];
            };

            objParts.domain = $2;
            objParts.tld = $3;
        }
    );

    return( objParts );
}

console.log(GetEmailParts("perry.rhodan@gmail.com"));

# Gives back an Object with either First and Last name sub object
# or one single user sub object if no dot is present in the email 
变量objParts={ 用户:null, 名字:空, 姓氏:空, 域:空, tld:null }; strEmail.replace( 新的RegExp(“^([a-z\\d.\%-]+)@((?:[a-z\\d-]+\\)+)([a-z]{2,6})$”,“i”), 函数($0、$1、$2、$3){ objParts.user=$1; 如果($1.5长度>1){ $1=$1.分割(“.”); 对于(变量i=0;i<$1.length;i++){ $1[i]=$1[i]。子字符串(0,1).toUpperCase()+$1[i]。子字符串(1,$1[i]。长度); } objParts.firstName=$1[0]; objParts.lastName=$1[1]; }; objParts.domain=$2; objParts.tld=$3; } ); 返回(objParts); } log(GetEmailParts(“perry。rhodan@gmail.com")); #返回具有名字和姓氏子对象的对象 #或者,如果电子邮件中没有点,则为一个单用户子对象
查看它的操作:

函数GetEmailParts(strEmail){
变量objParts={
用户:null,
名字:空,
姓氏:空,
域:空,
tld:null
};
strEmail.replace(
新的RegExp(“^([a-z\\d.\%-]+)@((?:[a-z\\d-]+\\)+)([a-z]{2,6})$”,“i”),
函数($0、$1、$2、$3){
objParts.user=$1;
如果($1.5长度>1){
$1=$1.分割(“.”);
对于(变量i=0;i<$1.length;i++){
$1[i]=$1[i]。子字符串(0,1).toUpperCase()+$1[i]。子字符串(1,$1[i]。长度);
}
objParts.firstName=$1[0];
objParts.lastName=$1[1];
};
objParts.domain=$2;
objParts.tld=$3;
}
);
返回(objParts);
}
log(GetEmailParts(“perry。rhodan@gmail.com"));
#返回具有名字和姓氏子对象的对象
#或者,如果电子邮件中没有点,则为一个单用户子对象
在行动中看到它:

使用C#做这件事:

Regex Regex=newregex(@“(.+)@(.+)(?=\。\w{2,})”;
字符串文本=佩里。rhodan@galaxy.net\natlan@galaxy.net";
var list=新列表();
foreach(正则表达式中的匹配项匹配(文本))
{
list.AddRange(item.Groups[1].Value.Split('.')。其中(v=>!list.Any(l=>l==v));
list.AddRange(item.Groups[2].Value.Split('.')。其中(v=>!list.Any(l=>l==v));
}
foreach(列表中的变量项)
{
控制台写入线(项目);
}
使用C#进行此操作:

Regex Regex=newregex(@“(.+)@(.+)(?=\。\w{2,})”;
字符串文本=佩里。rhodan@galaxy.net\natlan@galaxy.net";
var list=新列表();
foreach(正则表达式中的匹配项匹配(文本))
{
list.AddRange(item.Groups[1].Value.Split('.')。其中(v=>!list.Any(l=>l==v));
list.AddRange(item.Groups[2].Value.Split('.')。其中(v=>!list.Any(l=>l==v));
}
foreach(列表中的变量项)
{
控制台写入线(项目);
}
我不知道您是否绝对想自己编写Regexp(在这种情况下,上面的答案可能就可以了)

然而,由于电子邮件地址解析起来很奇怪,如果您使用nodejs,我建议您寻找一个完整的解析器库,比如这样。

我不知道您是否绝对想自己编写Regexp(在这种情况下,上面的答案可能就可以了)


然而,由于电子邮件地址解析起来很奇怪,如果您使用的是nodejs,我建议您寻找一个完整的解析器库,比如这样。

很抱歉,我没有看到javascript tagNo Problem。只是C#在我的Linux设备上表现不好。我在所有计算机、工作、家庭、手机、汽车、自行车上都使用100%Linux。对不起,我看不到javascript标记没有问题。只是C#在我的Linux设备上表现不好。我在所有计算机、工作、家庭、手机、汽车、自行车上使用100%Linux。
atlan@galaxy.net
Perry 
Rhodan
galaxy
net
atlan
galaxy
net
function GetEmailParts( strEmail ){

    var objParts = {
        user: null,
        firstName: null,
        LastName: null,
        domain: null,
        tld: null
        };

    strEmail.replace( 
        new RegExp("^([a-z\\d._%-]+)@((?:[a-z\\d-]+\\.)+)([a-z]{2,6})$", "i"),

        function( $0, $1, $2, $3 ) {
            objParts.user = $1;  

            if ($1.length > 1) {
                $1 = $1.split(".");
                for(var i = 0; i < $1.length; i++){

                    $1[i] = $1[i].substring(0,1).toUpperCase() + $1[i].substring(1,$1[i].length);
                }
                objParts.firstName = $1[0];
                objParts.lastName = $1[1];
            };

            objParts.domain = $2;
            objParts.tld = $3;
        }
    );

    return( objParts );
}

console.log(GetEmailParts("perry.rhodan@gmail.com"));

# Gives back an Object with either First and Last name sub object
# or one single user sub object if no dot is present in the email 
Regex regex = new Regex(@"(.+)@(.+)(?=\.\w{2,})");

string texts = "perry.rhodan@galaxy.net\natlan@galaxy.net";

var list = new List<string>();
foreach (Match item in regex.Matches(texts))
{
    list.AddRange(item.Groups[1].Value.Split('.').Where(v => !list.Any(l => l == v)));
    list.AddRange(item.Groups[2].Value.Split('.').Where(v => !list.Any(l => l == v)));
}

foreach (var item in list)
{
    Console.WriteLine(item);
}