gpt4 book ai didi

javascript - 正则表达式获取字符串的一部分作为数字

转载 作者:行者123 更新时间:2023-11-28 20:45:01 25 4
gpt4 key购买 nike

我有一个类似的字符串

<dt>Source:</dt>
<dd>
Emergence: Title; 2005, Vol. 9 Issue 30, p120-203, 12p
</dd>

现在我是一个正则表达式来获取不同的值,即:卷、问题、日期等所以,我使用以下方法获取整个文本:

var attr = jQuery("dl dt:contains('Source:') ~ dd:eq(0)").text();

并使用正则表达式来获取不同的值,例如:

要获取我使用的起始页,请遵循正则表达式:

var regex = new RegExp("p\\d+(?=[-\\s]{1})");

var regexValPS = attr.match(regex);

返回值:p120,预期:120

类似地,为了获取卷信息,我使用以下正则表达式:

var regexVol = new RegExp("Vol.\\s\\d+");
var regexValVol = attributeVal.match(regexVol);

我得到:卷。 9,我想要:9

同样,我收到带有“Issue”文本的问题编号:

var regEx = new RegExp("Issue\\s\\d+");
var regExVal = attributeVal.match(regEx);

我应该得到:30,而不是:问题 30

问题是我无法使用另一个正则表达式来获取所需的值,无法 strip/parseInt 等,并且该模式必须能够在单个正则表达式中获取信息。

最佳答案

使用分组(...)并读取其匹配项»

演示:

var str = "Emergence: Title; 2005, Vol. 9 Issue 30, p120-203, 12p";
var re = /p(\d+)(?=[\-\s])/;
document.writeln(re.exec(str)[1]); // prints: 120
re = /Vol\.\s(\d+)/;
document.writeln(re.exec(str)[1]); // prints: 9

测试一下 here .

关于javascript - 正则表达式获取字符串的一部分作为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646551/

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