javascript - 使用纯 Javascript 提取字符串的复杂部分

标签 javascript jquery css-selectors google-tag-manager

我有以下字符串:

<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/

相关文章:

javascript - 回溯算法创建一个 "jumbled"但不是随机数组

javascript - 异步等待问题

javascript - gzip 一个缩小的 .js 文件

javascript - Vue JS 如果出现错误则更改提交按钮

javascript - ajax 可卸载内容上的 DOM 事件?

html - nth-of-type 不工作

javascript - 剑道编辑器具有最大化和最小化控制?

javascript - 使用 jQuery 动态创建 hello world 页面不起作用

JQuery 选择 td 中的一个元素

在 Chrome 和 Firefox 中选择框的 Css