TypeScript如何提取指定标识后的字符串内容并存入数组?
TypeScript提取指定前缀后的标签内容到数组
完全可以将abc和cd存入数组,下面提供两种实用的实现方式:
方法一:正则表达式匹配(适合固定结构)
针对你给出的固定字符串结构,用正则可以精准匹配Connectorparent和child之后的<strong>标签内内容:
const element = "Connectorparent<strong>abc</strong>child<strong>cd</strong>"; // 正则匹配前缀+strong标签,捕获标签内的文本 const targetRegex = /(?:Connectorparent|child)<strong>(.*?)<\/strong>/g; const extractedContent: string[] = []; // 遍历所有匹配结果,提取捕获的内容 for (const match of element.matchAll(targetRegex)) { extractedContent.push(match[1]); } console.log(extractedContent); // 输出: ["abc", "cd"]
正则说明:
(?:Connectorparent|child):非捕获分组,仅用来匹配指定前缀,不占用捕获结果<strong>(.*?)<\/strong>:非贪婪匹配<strong>标签内的文本,避免跨标签匹配matchAll:遍历所有符合规则的匹配项,提取每个匹配的第一个捕获组(即标签内的文本)
方法二:DOM解析(适合复杂HTML结构)
如果后续字符串的HTML结构可能变化,用DOM解析更稳定可靠:
const element = "Connectorparent<strong>abc</strong>child<strong>cd</strong>"; const parser = new DOMParser(); // 将字符串解析为HTML文档 const htmlDoc = parser.parseFromString(element, "text/html"); // 选择所有strong标签,提取文本内容 const extractedContent: string[] = Array.from(htmlDoc.querySelectorAll("strong")) .map(el => el.textContent ?? ""); console.log(extractedContent); // 输出: ["abc", "cd"]
解析说明:
DOMParser:浏览器内置API,将字符串转为标准DOM文档querySelectorAll("strong"):获取所有<strong>元素Array.from+map:将DOM元素列表转为数组,提取每个元素的文本内容
内容的提问来源于stack exchange,提问作者LIMJI
相关产品推荐
相关产品推荐

