用RegEx删除全名中的中间名。

问题描述 投票:0回答:1

名字为例。 注意没有空格.

JohnJSmith

MikeLJohnson

PeterWWalker

结果应该是。

JohnSmith

迈克-约翰逊

PeterWalker

A-Z]{2}RegEx只匹配了两个大写字母,不知道以后该如何操作。

谢谢你。

regex lowercase names
1个回答
0
投票

假设,你有

1)以大写字母开头的名字,后面跟着一些小字母->[A-Z][a-z]*。

2)大写中间字母->[A-Z]。

3)大写的最后一个字母后面加一些小字母->[A-Z][a-z]*。

你可以把他们分成3组

(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)

因为你需要第一和最后一组,你可以得到这样的 -> $1$3

Eg.

'JohnJSmith'.replace(/(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)/,'$1$3')->"JohnSmith"
© www.soinside.com 2019 - 2024. All rights reserved.