Refactor possessive-fixing regular expressions

This commit is contained in:
Domenic Denicola 2020-11-14 18:46:43 -05:00
commit 41566a380e

View file

@ -391,41 +391,11 @@ function enDashJointNames(xml) {
function fixPossessives(xml) {
// Fix possessive of names ending in "s"
// Note: if the "s" is unvoiced, as in Marquis, then it doesn't get the second "s".
xml = xml.replace(/([^‘])Judas’([^s])/g, "$1Judas’s$2");
xml = xml.replace(/([^‘])Brutus’([^s])/g, "$1Brutus’s$2");
xml = xml.replace(/([^‘])Jess’([^s])/g, "$1Jess’s$2");
xml = xml.replace(/([^‘])Aegis’([^s])/g, "$1Aegis’s$2");
xml = xml.replace(/([^‘])Dauntless’([^s])/g, "$1Dauntless’s$2");
xml = xml.replace(/([^‘])Circus’([^s])/g, "$1Circus’s$2");
xml = xml.replace(/([^‘])Sirius’([^s])/g, "$1Sirius’s$2");
xml = xml.replace(/([^‘])Brooks’([^s])/g, "$1Brooks’s$2");
xml = xml.replace(/([^‘])Genesis’([^s])/g, "$1Genesis’s$2");
xml = xml.replace(/([^‘])Atlas’([^s])/g, "$1Atlas’s$2");
xml = xml.replace(/([^‘])Lucas’([^s])/g, "$1Lucas’s$2");
xml = xml.replace(/([^‘])Gwerrus’([^s])/g, "$1Gwerrus’s$2");
xml = xml.replace(/([^‘])Chris’([^s])/g, "$1Chris’s$2");
xml = xml.replace(/([^‘])Eligos’([^s])/g, "$1Eligos’s$2");
xml = xml.replace(/([^‘])Animos’([^s])/g, "$1Animos’s$2");
xml = xml.replace(/([^‘])Mags’([^s])/g, "$1Mags’s$2");
xml = xml.replace(/([^‘])Huntress’([^s])/g, "$1Huntress’s$2");
xml = xml.replace(/([^‘])Hephaestus’([^s])/g, "$1Hephaestus’s$2");
xml = xml.replace(/([^‘])Lord of Loss’([^s])/g, "$1Lord of Loss’s$2");
xml = xml.replace(/([^‘])John Combs’([^s])/g, "$1John Combs’s$2");
xml = xml.replace(/([^‘])Mama Mathers’([^s])/g, "$1Mama Mathers’s$2");
xml = xml.replace(/([^‘])Monokeros’([^s])/g, "$1Monokeros’s$2");
xml = xml.replace(/([^‘])Goddess’([^s])/g, "$1Goddess’s$2");
xml = xml.replace(/([^‘])Boundless’([^s])/g, "$1Boundless’s$2");
xml = xml.replace(/([^‘])Paris’([^s])/g, "$1Paris’s$2");
xml = xml.replace(/([^‘])Tress’([^s])/g, "$1Tress’s$2");
xml = xml.replace(/([^‘])Harris’([^s])/g, "$1Harris’s$2");
xml = xml.replace(/([^‘])Antares’([^s])/g, "$1Antares’s$2");
xml = xml.replace(/([^‘])Nieves’([^s])/g, "$1Nieves’s$2");
xml = xml.replace(/([^‘])Backwoods’([^s])/g, "$1Backwoods’s$2");
xml = xml.replace(/([^‘])Midas’([^s])/g, "$1Midas’s$2");
xml = xml.replace(/([^‘])Mrs. Sims’([^s])/g, "$1Mrs. Sims’s$2");
xml = xml.replace(/([^‘])Ms. Stillons’([^s])/g, "$1Ms. Stillons’s$2");
xml = xml.replace(/([^‘])Chuckles’([^s])/g, "$1Chuckles’s$2");
xml = xml.replace(/([^‘])Amias’([^s])/g, "$1Amias’s$2");
xml = xml.replace(
// eslint-disable-next-line max-len
/(?<!‘)(Judas|Brutus|Jess|Aegis|Dauntless|Circus|Sirius|Brooks|Genesis|Atlas|Lucas|Gwerrus|Chris|Eligos|Animos|Mags|Huntress|Hephaestus|Lord of Loss|John Combs|Mama Mathers|Monokeros|Goddess|Boundless|Paris|Tress|Harris|Antares|Nieves|Backwoods|Midas|Mrs. Sims|Ms. Stillons|Chuckles|Amias)’(?!s)/g,
"$1’s"
);
// This one is not just missing the extra "s"; it's often misplaced.
xml = xml.replace(/Warden’s/g, "Wardens’");