我正在尝试从一系列电子邮件地址中获取名字和姓氏。每个电子邮件地址都有一个模式。模式是first.last@company.com但在某些情况下,它可能类似于first.middle.last@company.com。重点是电子邮件中的名字和姓氏之间可能有某些内容,但并非总是如此。 主要模式始终是相同的,第一个字符串,直到第一个点始终是第一个名称,并且姓氏始终是从前一个DOT开始的@ char之前的最后一个字符系列。 例子:
charles.bukowski@company.com 第一名:查尔斯 最后:Bukowski的
charles.mark.bukowski@copmany.com 第一名:查尔斯 最后:Bukowski的
charles.x.markus.bukowski@company.com 第一名:查尔斯 最后:Bukowski的
获得名字很容易。我有以下变量:
var empmail = 'charles.x.markus.bukowski@company.com'
var empname = empmail.substring(0, empmail.indexOf("."));
我找不到找出姓氏的方法。
答案 0 :(得分:3)
使用正则表达式的String#match
方法获取名称。
var empmail = 'charles.x.markus.bukowski@company.com'
var match = empmail.match(/^(\w+)\..*\.(\w+)@/);
var empname = match[1];
var emplname = match[2];
console.log(
empname,
emplname
)
或使用String#lastIndexOf
方法
var empmail = 'charles.x.markus.bukowski@company.com'
var empname = empmail.substring(0, empmail.indexOf(".")); // get first name
// get complete name part
var namePart = empmail.substring(0, empmail.indexOf("@"));
// get last name from name part
var emplname = namePart.substring(namePart.lastIndexOf('.') + 1);
console.log(
empname,
emplname
)
或使用String#split
和Array#pop
方法。
var empmail = 'charles.x.markus.bukowski@company.com'
// split by `.` and get first element
var empname = empmail.split('.')[0];
// split name part and get last element from array
var emplname = empmail.split('@')[0].split('.').pop();
console.log(
empname,
emplname
)
答案 1 :(得分:1)
var empmail = 'charles.x.markus.bukowski@company.com'
var fullName = empmail.split('@')[0].split('.');
var firstName = fullName[0];
var lastName = fullName[ fullName.length-1 ]
答案 2 :(得分:0)
您也可以针对给定的电子邮件ID使用此方法
var emailfirstname = a.slice(0,a.indexOf('@')).split('.')[0]
var emailLastname = a.slice(0,a.indexOf('@')).split('.')[a.slice(0,a.indexOf('@')).split('.').length - 1]
答案 3 :(得分:0)
这应该得到你的姓氏:
的javascript:
empmail.match(/[a-z]+(?=@)/i);
PHP:
preg_match("/[a-z]+(?=@)/", $input_line, $output_array);