【发布时间】:2020-10-23 21:11:33
【问题描述】:
我正在构建一个函数来处理动态电话号码交换,识别referral url,通过数据集进行映射,然后输出promoUrl 的相关电话号码。数据格式如下:
const phoneNumbers = [
{
promoUrl: '/interior-doors/',
promoNumber: '589-918-0710',
},
{
promoUrl: '/promo4/',
promoNumber: '307-789-8615',
},
];
函数映射数据并减少它,让我可以像这样对它进行排序:
const url = location.pathname.replace(/\/+$/, '');
const promoNumber = phoneNumbers.reduce((promoNumber, results) => {
const hasPromo = results.promoUrl.includes(url);
if (hasPromo) {
return results.promoNumber;
}
return promoNumber;
}, '');
我在使用 hasPromo 时遇到了一些问题。它现在的构建方式允许 promoUrl 有一些差异并且仍然可以工作,这意味着只要它包含从 url 返回的内容,那么它就可以工作,即/interior-doors/、/interior-doors 和 interior-doors 都可以工作,这很好,但如果 url 是 /interior-do 也可以。我需要它不要那样做。它应该独立于格式工作,但只有在字母字符串准确时才返回promoNumber。
我假设这是 regex 的事情,但我不知道我在用 regex 做什么。任何帮助将不胜感激。
【问题讨论】:
标签: javascript constants string-comparison