正则表达式删除所有html标签,不包括<br>和<a class='user'> </a>

wil*_*age 3 html javascript regex tags

我对正则表达式相对较新,但我的目标是使用class ='user' 从字符串中删除除<br>s和<a>标记之外的所有html标记.我想用这个正则表达式从contentedittable字段清除不需要的HTML垃圾.

希望你们其中一个正则表达的大师可以帮助...

以下是一个测试示例: http ://gskinner.com/RegExr/?2tpai

我认为我很接近,但是当需要时,a class ='user'的结束标记仍然被选为垃圾.

And*_*yle 5

从形式上讲,您无法使用正则表达式解析HTML,因为HTML不是常规语言.另请参阅您是否可以提供一些示例,说明为什么难以使用正则表达式解析XML和HTML?对于一些梦魇材料.

毫无疑问,你可以想出一些正则表达式,在"最"的情况下,或"懂事"的情况下工作,但如果您是通过正则表达式消毒用户输入,这将是不够的.距离通过精心设计的文本替换和转义替换SQL参数并不是一百万英里; 无论你多么聪明,正确的答案是使用不同的方法,因为仍然存在一些弱点.

在这种情况下,该方法将使用HTML解析库来读取文本,然后从解析的DOM中删除<br><a>标记.(这比尝试从原始文本中删除一系列字符要强大得多,并且可能创建更易理解的源代码!).事实上,既然你可能在客户端谈论JS,那么你已经有了可用的DOM,由浏览器预先解析,所以这将是一个简单的操作.

如果您不熟悉JavaScript的DOM操作方法,我认为quirksmode介绍是平易近人且信息丰富的.