試圖從地址字串中去除額外的收件人。在下面的示例中,dba bobs是要洗掉的目標字串。
const NOT_EXTRA_ADDRESSEE = /^(?!.*(attn|co|dba|fka|dept).*\n).*\n/gim;
"bobs burgers dba bobs dinner\n100 Oceanside drive\nnashville, tn 37204"
.replace(NOT_EXTRA_ADDRESSEE, "");
以上產生:
bobs burgers dba bobs dinner
100 oceanside drive
nashville tn 37204
當需要時:
bobs burgers
100 oceanside drive
nashville tn 37204
我究竟做錯了什么?有時輸入在“dba”之前有一個“\n”。
uj5u.com熱心網友回復:
您可以將正則運算式簡化為:/\b(attn|co|dba|fka|dept)\b.*/gm
在這里測驗: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);
編輯:在評論中加入了用戶 Cary Swoveland 的建議。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/465820.html
標籤:javascript 正则表达式 提炼
上一篇:如果arrayFormula什么都不回傳,我如何回傳字串“Empty”?
下一篇:正則運算式從字串中過濾掉日期時間
