解释用于从String中删除html代码的正则表达式

时间:2014-04-01 15:42:56

标签: javascript jquery regex

我有一个正则表达式,它从字符串中删除html代码:

var html = "<p>Dear sms,</p><p>This is a test notification for push message from center II.</p>";

text = html.replace(/(<([^>]+)>)/ig, "")

alert(text)

这是关于jsfiddle的表达式:http://jsfiddle.net/VgHr3/53/

正则表达式本身是/(<([^>]+)>)/ig。我不完全理解这个表达式是如何工作的。可以提供解释吗?通过阅读备忘单,我可以找到每个角色本身的行为:http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

但是&#34; / ig&#34;的重要性是什么? ?

1 个答案:

答案 0 :(得分:3)

那些是全球旗帜。你的备忘单实际上是在右侧列出的:

Regular Expressions Pattern Modifiers
g   Global match
i   Case-i­nse­nsitive
m   Multiple lines
s   Treat string as single line
x   Allow comments and white space in pattern
e   Evaluate replac­ement
U   Ungreedy pattern

请注意,JavaScript正则表达式引擎并不支持所有这些标志。有关权威列表,请参阅此MDN article

所以&#34; g&#34; flag使其全局化,因此它会在找到它的地方替换此模式,而不仅仅是第一个实例(这是replace方法的默认行为)。

&#34; i&#34; flag使其不区分大小写,因此[a-z]+之类的模式将匹配"foo""FOO"。但是,因为您的模式只涉及<>个字符,所以此标记无用。