使用正则表达式移除名,仅允许修改指定正则表达式定义行
解决方案
要实现将显示内容从包含中间名的全名改为仅保留头衔和姓氏,只需修改正则表达式,调整捕获分组的范围,跳过中间名的捕获:
修改后的正则语句为:
const re = /^(\w+\.)\s\w+\s(\w+)$/;
解释:
- 第一个捕获组
(\w+\.):匹配并捕获头衔(如Dr.、Mr.),不再包含后面的空格 \s\w+\s:匹配头衔后的空格、中间名以及中间名后的空格,但不捕获这部分内容- 第二个捕获组
(\w+):匹配并捕获姓氏(如House、Wolowitz)
执行原代码的输出语句后,就会得到Dr. House(或Mr. Wolowitz)的结果,符合需求。
完整代码示例:
const userName = "Dr. Greg House"; // Code will also be tested with "Mr. Howard Wolowitz" /* Your solution goes here */ const re = /^(\w+\.)\s\w+\s(\w+)$/; const result = re.exec(userName); console.log(result[1] + " " + result[2]);
内容的提问来源于stack exchange,提问作者Tweety
相关产品推荐
相关产品推荐

