我有以下字符串:
<a href="https://my.domain.com/personal/jan_kowalski_pl_company_com/Documents/Forms/All.aspx">Text</a>
我想从这个字符串中提取,使用 JavaScript 'pl' 或 'pl_company_com'
有几个变量:
jan_kowalski 是一个可以改变的名字和姓氏,有时甚至有 3 个元素
国家代码(在此示例中为“pl”)将更改为其他 en/de/fr(这是我想要获取的字符串的那部分)
字符串的其余部分在每种情况下都保持不变(开始 + 以 _company_com 开始后的所有内容 ...
附言。我尝试用 split 来做,但是我对 JS 的了解非常基础,我无法得到我想要的东西,请帮忙
最佳答案
使用正则表达式替代 Randy Casburn 的解决方案
let out = new URL('https://my.domain.com/personal/jan_kowalski_pl_company_com/Documents/Forms/All.aspx').href.match('.*_(.*_company_com)')[1];
console.log(out);
或者,如果您只想获取包含您指定的国家/地区代码的字符串
let out = new URL('https://my.domain.com/personal/jan_kowalski_pl_company_com/Documents/Forms/All.aspx').href.match('.*_((en|de|fr|pl)_company_com)')[1];
console.log(out);
let out = new URL('https://my.domain.com/personal/jan_kowalski_pl_company_com/Documents/Forms/All.aspx').href.match('.*_((en|de|fr|pl)_company_com)')[1];
console.log(out);
该解决方案也适用于其他组合的概念证明
let urls = [
new URL('https://my.domain.com/personal/jan_kowalski_pl_company_com/Documents/Forms/All.aspx'),
new URL('https://my.domain.com/personal/firstname_middlename_lastname_pl_company_com/Documents/Forms/All.aspx')
]
urls.forEach(url => console.log(url.href.match('.*_(en|de|fr|pl).*')[1]))
关于javascript - 使用纯 Javascript 提取字符串的复杂部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248935/