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