Trying to strip out the extra addressee from an address string. In the example below, dba bobs
is the targeted string to remove.
const NOT_EXTRA_ADDRESSEE = /^(?!.*(attn|co|dba|fka|dept).*n).*n/gim; "bobs burgers dba bobs dinnern100 Oceanside drivennashville, tn 37204" .replace(NOT_EXTRA_ADDRESSEE, "");
The above yields:
bobs burgers dba bobs dinner 100 oceanside drive nashville tn 37204
When the desired is:
bobs burgers 100 oceanside drive nashville tn 37204
What am I doing wrong? Sometimes the input has a ‘n’ before the ‘dba’.
Advertisement
Answer
You can simplify your regex to: /b(attn|co|dba|fka|dept)b.*/gm
Test here: https://regex101.com/r/TOH9VV/2
const regex = /b(attn|co|dba|fka|dept)b.*/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('\b(attn|co|dba|fka|dept)\b.*', 'gm') const str = `bobs burgers dba bobs 100 Oceanside drive nashville, tn 37204 bobs burgers dba bobs 100 attn Oceanside drive nashville, tn 37204 bobs burgers dba bobs 100 Oceanside depth drive nashville, tn fka 37204`; const subst = ``; // The substituted value will be contained in the result variable const result = str.replace(regex, subst); console.log('Substitution result: ', result);
EDIT: Included suggestion of user Cary Swoveland in the comments.