javascript - 正则表达式匹配 &entity;或 &#0-9;并捕获&

标签 javascript regex

我正在尝试对以下字符串原型(prototype)进行替换:“I‘m singing & dance in the rain.”以下正则表达式与实例正确匹配,但也捕获 & 实例后面的字符。 "(&)[#?a-zA-Z0-9;]" 从上述原型(prototype)中捕获以下字符串:"&l"

如何限制它只捕获 &

编辑:我应该补充一点,我不想单独匹配 "&"

最佳答案

查找(这涉及命名、十进制和十六进制实体):

&([A-Za-z]+|#x[\dA-Fa-f]+|#\d+);

替换为

&$1;

请注意:这很可能会出错。我建议使用 HTML 解析器来解码文本。如果它是双重编码的,您可以对其进行两次解码。即使在小规模上,HTML 和正则表达式也不能很好地协同工作。

既然您使用的是 JavaScript,我希望您使用的是浏览器。如果是的话,那么您手中就有了一个不错的 DOM 解析器。创建一个新元素,将字符串分配给其内部 HTML 属性并读出文本值。完成。

关于javascript - 正则表达式匹配 &entity;或 &#0-9;并捕获&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1764478/

相关文章:

javascript - 允许子域之间的跨站点请求而不更改第二个子域的文件内容

javascript - 如何使用 Jquery onclick 获取数组的下一个元素

php - 尝试从句子中提取主题标签,仅当句子是一个单词时才有效。

regex - Perl,将正则表达式匹配分配给标量

python - 根据列表中的多个单词从 pandas 数据框中提取所有短语

javascript - 访问在 AJAX 函数中设置值的变量

javascript - 对于 Angular 谷歌地图,我如何删除多段线?

javascript - VB.net Google Map从数据库检索数据信息

c# - 正则表达式提取所有小数值并迭代

Python 正则表达式(\..+)?