使用JavaScript解析带正则表达式的字符串

时间:2014-11-19 01:22:28

标签: regex

需要JavaScript中正则表达式的帮助

我有一个以分号分隔的超链接字符串:

 "<a onclick="RemoveValue('Asthma', '1')">Asthma</a>; <a onclick="RemoveValue('Alzheimer’s Disease', '2')"> Alzheimer’s Disease</a>; <a onclick="RemoveValue('Depression', '3')">Depression</a>"  

我需要使用正则表达式删除字符串的下方部分:

“<a onclick="RemoveValue('Alzheimer’s Disease', '2')"> Alzheimer’s Disease</a>” 

任何帮助将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:0)

由于我不清楚为什么或你正在尝试完成正则表达式可能无法正常工作。下次,请给我们一些背景信息。它帮助我们和你。另一件事是尝试展示你自己尝试过的东西,所以我们不要重复你已经尝试过的相同建议。

无论如何,这是一个简单的正则表达式,可以做到这一点,但从技术上讲,你可以做一个replace来删除你提供的字符串的出现。

<a[^>]+onclick="RemoveValue\('Alzheimer’s Disease'[^"]+">[^<]+</a>(?:;\s)?

Regex Demo

对于JS方面,它应该看起来类似于:

var str = "<a onclick=\"RemoveValue('Asthma', '1')\">Asthma</a>; <a onclick=\"RemoveValue('Alzheimer’s Disease', '2')\"> Alzheimer’s Disease</a>; <a onclick=\"RemoveValue('Depression', '3')\">Depression</a>";

var re = /<a[^>]+onclick="RemoveValue\('Alzheimer’s Disease'[^"]+">[^<]+<\/a>(?:;\s)?/gi;
var reOutput = str.replace(re, "");
console.log(reOutput);

Fiddle Demo - 检查控制台窗口。