RegEx для удаления среднего инициала в полном имени - PullRequest
0 голосов
/ 24 апреля 2020

Имена для примера: обратите внимание, что пробелов нет.

JohnJSmith

MikeLJohnson

PeterWWalker

результат должен быть:

JohnSmith

MikeJohnson

PeterWalker

[AZ] {2} RegEx соответствует только двум заглавным буквам, не знаю, как поступить дальше.

Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2020

Предположим, у вас есть

1) Имя, начинающееся с заглавной буквы, за которой следуют несколько маленьких букв -> [AZ] [az] *

2) Заглавная средняя буква-> [AZ]

3) Заглавная последняя буква, за которой следуют несколько маленьких букв -> [AZ] [az] *

U можно разбить их на 3 группы

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

Так как вам нужна первая и последняя группы. Вы можете получить вот так -> $ 1 $ 3

Например.

'JohnJSmith'.replace(/(^[A-Z][a-z]*)([A-Z])([A-Z][a-z]*)/,'$1$3')->"JohnSmith"
...