jquery在这个正则表达式上失败了

jsfiddle fails on this regex?

本文关键字:失败 正则表达式 jquery      更新时间:2023-09-26

我正在制作一些文本处理的原型,为编码准备研究数据,我在jsFiddle中有一个javascript替换语句,我不知道为什么:

   mE[1] = mE[1].replace(/<p.*>/ig, '');­ // <<< this line

我正在尝试删除任何开头段落标记。

如果查看http://jsfiddle.net/jotarkon/2e5gq/,取消该行的注释,看看脚本是否失败。

——点击标题来触发函数

这简直要把我逼疯了。知道哪里出错了吗?

问题似乎是在该行的某个地方出现了一个实际的非法字符,我认为它与正则表达式没有任何关系。试着从头开始输入整行,然后删除那一行。当我这样做时,小提琴工作得很好(好吧,它至少不会得到那个错误)。

编辑本;非法字符就在该行分号后面。从"this line"注释上的"//"开始,按几次退格键来删除假字符和分号,然后重新键入分号。

编辑更多 -字符序列是C2 AD(十六进制)。

首先,不要对HTML使用regeen。有一些库可用于此。你不能用regexen解析HTML。其次,你需要更具体。说"替换语句的炸弹"并不能告诉我们错误的性质。最后,如果您很好奇,这个regex是贪婪的,因此它将不加区分地替换从第一个以字母p开头的HTML标记到输入中的最后一个>的所有内容。如果你真的想使用它,请将它设置为非贪婪的,并确保它不匹配其他以字母p开头的标签,我不打算具体说明,因为这样做是错误的答案。