繁体   English   中英

Javascript 使用正则表达式剥离以获取字符串中的 a 标记之前和之后

[英]Javascript strip using regex to get before and after an a tag in string

我有来自服务器的这个字符串

15 Steps is mandatory and must be completed by 14/02/2021: click <a href='http://example.co.uk/training/CRU0007'>here</a> to book/start your learning.

我需要得到 2 个值

 15 Steps is mandatory and must be completed by 14/02/2021: click 

&

 to book/start your learning.

当我尝试这个之前我有一个字符串包裹在:和; 下面的代码有效

var arrStr = newsText.split(/[:;]/);

但如果我尝试

var arrStr = newsText.split(/[<a></a>]/);

我弄得一团糟。

所以我决定尝试使用正则表达式并做到这一点

const linkRx = /<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)\1/;
var arrStr = newsText.split(linkRx);

但这会在最后部分留下>here</a>

那么如何编辑正则表达式以获取 a 标签的 rest。 我已经搜索了很多答案,但他们似乎没有得到整个标签。

我会使用以下正则表达式。

目的是获取<anything></anything>之前和之后的任何情况。

 const str = `15 Steps is mandatory and must be completed by 14/02/2021: click <a href='http://example.co.uk/training/CRU0007'>here</a> to book/start your learning.`; const regex = /(.*?)(?:<.*?>.*?<\/.*?>)(.*)/gm; const [, partA, partB, ] = regex.exec(str); console.log('PartA:', partA); console.log('PartB:', partB);


在此处输入图像描述

根据您的尝试,您能否尝试以下操作,在线演示是:在线正则表达式演示

 var newsText = `15 Steps is mandatory and must be completed by 14/02/2021: click <a href='http://example.co.uk/training/CRU0007'>here</a> to book/start your learning.` var arrStr = newsText.split(/\s*<a\s+href=[^>]*>[^>]*<\/a>\s*/); console.log(arrStr);

说明:如果匹配 0+ 个空格,后跟一个<href=标签和结束</a>标签,后跟 0+ 个空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM