我有一个字符串,我想从'this-name'属性中获取文本。我进行了搜索,但只找到了从div属性获取文本的示例。
var text = 'blah blah this-name="GET THIS TEXT" blah blah';
答案 0 :(得分:2)
使用正则表达式来match
之后的this-name
,将文本括在一组引号之间。然后,从比赛中提取第一组:
var text = 'blah blah this-name="GET THIS TEXT" blah blah';
const extractedText = text.match(/this-name="([^"]+)"/)[1];
console.log(extractedText);
如果该字符串是HTML字符串,则应该改用DOMParser之类的字符。
对于多个匹配项,使用循环并遍历每个匹配项:
const text = 'blah blah this-name="GET THIS TEXT" blah blah this-name="GET THIS TEXT 2" etc';
const output = [];
const re = /this-name="([^"]+)"/g;
let match;
while ((match = re.exec(text)) !== null) {
output.push(match[1]);
}
console.log(output);
您也可以使用lookbehind来获取所有匹配项,而不是使用while
循环,但是lookbehind仅在最新的浏览器中受支持,因此不应依赖它。
答案 1 :(得分:1)
您可以在'this-name =“'处分割原始字符串并获得最后一部分(这将为您提供名称文本,尾随引号和文本的其余部分),然后在'”'处分割结果字符串取第一部分(这将简单地为您提供您所需要的名称attribgute的文本。
var text = 'blah blah this-name="GET THIS TEXT" blah blah';
var nameText = text.split('this-name="')[1].split('"')[0]
console.log(nameText); // gives GET THIS TEXT