使用Javascript从字母数字字符串中生成字母字符的子字符串

使用Javascript从字母数字字符串中生成字母字符的子字符串,javascript,substring,Javascript,Substring,我有一个文件,其中包含员工编号、员工姓名以及部门。看起来是这样的: 0234569884566781DOE,JOHN K KF(“KF”是部门) 2487231227879636WHITE,ERIC C KF 0234569884566781DOE,JOHN KRT(“RT”是部门。有些在中间首字母后没有空格,如前两个示例) 等等 我试图做一个子字符串,其中输出是员工全名,即DOE,JOHN K。 如何将子字符串设置为只获取全名而不获取其他内容? 起始职位将始终为16,因为员工编号始终为16位数

我有一个文件,其中包含员工编号、员工姓名以及部门。看起来是这样的:

0234569884566781DOE,JOHN K KF(“KF”是部门)

2487231227879636WHITE,ERIC C KF

0234569884566781DOE,JOHN KRT(“RT”是部门。有些在中间首字母后没有空格,如前两个示例)

等等

我试图做一个子字符串,其中输出是员工全名,即DOE,JOHN K。 如何将子字符串设置为只获取全名而不获取其他内容?

起始职位将始终为16,因为员工编号始终为16位数字。但我不确定最后的位置是什么,因为每个人的名字长度明显不同

希望这有帮助

const staff=[
“0234569884566781DOE,JOHN K KF”,
“2487231227879636WHITE,ERIC C KF”,
“2487231227879636黑色,简CRF”
];
const name=staff.map(行=>{
设n=行子串(16);
n=n.子串(0,n.长度-2);
返回n.trim();
});
console.log(名称)这里有一种方法

const pieces = '2487231227879636WHITE, ERIC C KF'.split(' ')
pieces.pop() // remove department
const lastName = pieces[0].substr(16)
pieces.reverse()
pieces.pop() // remove first name with employee num prefix
const name = lastName + pieces.join(' ')

您可以使用一点正则表达式来实现这一点:

const employees=[
“0234569884566781DOE,JOHN K KF”,
“2487231227879636WHITE,ERIC C KF”,
“2487231227879636黑色,简CRF”
];
常量regex=/^\d+([a-z,]+?)?[a-z]{2}$/i;
const names=employees.map(data=>data.match(regex)[1]);

console.log(名称)
发布从该“文件”读取的代码。
.slice(16,-2)
@Bri如果答案解决了您的问题,请单击其左侧的灰色复选标记。