Вот мой код, я написал отдельную функцию для регулярного выражения для извлечения шаблона имени, передавая шаблон регулярного выражения с двумя строками в функцию, функция сопоставляет либо один шаблон из двух входных строк, либо вернет 'No_Value'.
function getName(narration_1, narration_2, regex) {
try {
// regex = JSON.parse(regex);
regex = regex.find((item) => { console.log("Item", item); return (new RegExp(item, 'ig').test(narration_1) === true || new RegExp(item, 'ig').test(narration_2) === true)});
console.log("Regex", regex);
let narration = (!!regex) ? (new RegExp(regex, 'ig').test(narration_1) ? narration_1 : narration_2) : null;
let name = (!!narration && narration.match(regex)) ? (!narration.match(regex)[1] ? 'NO_VALUE' : narration.match(regex)[1].trim()) : 'NO_VALUE';
console.log(name);
return name;
} catch(e) {
console.log("Err", e);
// throw new Error(e);
}
}
let string1 ="OPERATION"
let string2 = "退回自動轉賬 WRITE SOMEOPERATIONS TO MR . MANOJ-THOMAS"
let regex = ["MR (.*?) (?:[a-zA-Z]+[0-9]|[0-9]+[a-zA-Z])"];
getName(string1, string2, regex);
Я хочу извлечь имя из приведенной выше строки 2 MANOJ-THOMAS, однако имя, которое появляется, может также соответствовать «Mr.», «MR.», MR. »,« MR. ».