我想使用现代JavaScript语法检索一个人的名字和姓氏的首字母.目前,我能够正确检索名字的第一个字母和姓氏的第一个字母.

我的问题是,如果没有"of"这个词,我就无法检索它.

这是我的Jsfiddle链接-CLICK HERE

代码 :

/* const name = "Joshua Jones of USA"; */
const name = "William Sanders";
/* const name = "Grey Charles"; */

function getUserInitials(name) {
  return /^(.).+([A-Z])\w+\sof\s.+$/.exec(name).slice(1, 3).join('');
}


console.log(getUserInitials(name));

推荐答案

不确定您到底想做什么,但这解决了显示的测试用例:

const names = ["Joshua Jones of USA", "William Sanders", "Grey Charles"];

function getUserInitials(name) {
  return name.split(' ').map(w => w.charAt(0).toUpperCase()).splice(0,2);
}

for (const name of names)
  console.log(getUserInitials(name));

如果这不能满足您的要求,请详细说明.

Javascript相关问答推荐

Promise.all立即跳到那时,而不是调用所有Promise

在shiny 模块中实现JavaScript

单击按钮后未清除 Select

在分区内迭代分区

D3多线图显示1线而不是3线

如何在表格上拥有水平滚动条,在正文页面上拥有垂直滚动条,同时还对html表格的标题使用位置粘性?

如何才能拥有在jQuery终端中执行命令的链接?

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

Google图表时间轴—更改hAxis文本 colored颜色

在Angular中将样式应用于innerHTML

如何找出摆线表面上y与x相交的地方?

如何从调整大小/zoom 的SVG路径定义新的d属性?""

查询参数未在我的Next.js应用路由接口中定义

将Node.js包发布到GitHub包-错误ENEEDAUTH

将基元传递给THEN处理程序

在表单集中保存更改时删除';禁用';

Docent.cloneNode(TRUE)不克隆用户输入

AG-GRIDreact 显示布尔值而不是复选框

如何使用Reaction路由导航测试挂钩?

如何使用Cypress在IFRAME中打字