gpt4 book ai didi

javascript - 来自 URL 的正则表达式匹配数据在有两个匹配项时仅返回 1 个匹配项

转载 作者:行者123 更新时间:2023-11-30 15:28:11 24 4
gpt4 key购买 nike

根据我提交的URL,有两个匹配项。他们是'en-gb' 和 'uk-ireland'

网址:https://www.myabcalphabeta.com/en-gb/destinations/uk-ireland

但是当我返回函数时,它只返回最后一个,即“uk-ireland”

我如何 catch 第一场比赛“en-gb”。我还看到循环工作正常,因为它返回了两个值。

控制台输出截图。 Screenshot of output in console.

    $(document).ready(function(){
function getURLLocale() {
var url = $(location).attr("href");
var localeRegex = /^[a-z][a-z]-[a-z][a-z]/g;
var urlBreakdown = url.split("/");
console.log(urlBreakdown);
var lang = "en";
var country = "gb";

for(var i = 0; i < urlBreakdown.length; i++) {
if(urlBreakdown[i].match(localeRegex)) {
lang = urlBreakdown[i].split("-")[0];
country = urlBreakdown[i].split("-")[1];
console.log(lang+ "\n");
};
}

return([lang, country]);
} // End function getURLLocale()
console.log(getURLLocale());
})

最佳答案

我认为你可以这样做:

const url = `https://www.myabcalphabeta.com/en-gb/destinations/uk-ireland`

const getUrlData = url => {
const en = url.match(/\ben-?\w*\b/)
const uk = url.match(/\buk-?\w*\b/)
const result = []
if (en) result.push(en[0])
if (uk) result.push(uk[0])
return result
}

console.log(getUrlData(url))

或者这个

const url = `https://www.myabcalphabeta.com/en-gb/destinations/uk-ireland`

const getUrlData = url => {
const regex = /\b[a-z]{2}-[a-z]*\b/g
const result = []
let temp

while (temp = regex.exec(url)) {
result.push(temp[0])
}
return result
}
console.log(getUrlData(url))

这会选择以 2 [a-z] 开头的任何部分,然后必须开始单词 - 以及所有 [a-z] 直到不是单词

关于javascript - 来自 URL 的正则表达式匹配数据在有两个匹配项时仅返回 1 个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42642369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com