我正在尝试使用 JavaScript 正则表达式从 URL 中提取一些变量值。 URL 采用以下模式:
@companyname/dl-分子类型-组件名称
。
示例 URL 为:
@companyname/dl-atoms-link
我想使用一个正则表达式从 URL 中提取 molecularType 和 componentName 来给我一个数组:
['原子', '链接']
这是我尝试过的方法,使用了出色的 RegExr站点:
正则表达式:
/(@company\/dl+-)+(?!\1)/g
我的想法是,第一个捕获组将捕获@companyname/dl-
,第二个捕获组将捕获第一组中不存在的所有内容。然而 RegExr 似乎表明这将返回与第一个捕获组相同的结果。有人可以帮忙吗?
谢谢
最佳答案
您可以使用如下所示的内容(请注意,我们知道结构并且可以更好地调整正则表达式):
function extract_fields(url)
{
var match = url.match(/@[^\/]+\/dl-([^-]+)-(\w+)/);
if ( match ) {
return {molecularType: match[1], componentName: match[2]};
}
return false;
}
console.log(extract_fields('@companyname/dl-molecularType-componentName'));
console.log(extract_fields('@companyname/dl-atoms-link'));
关于Javascript 正则表达式 - 捕获前面有另一个字符串的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54314261/