我有一个正则表达式,它从字符串中删除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;的重要性是什么? ?
答案 0 :(得分:3)
那些是全球旗帜。你的备忘单实际上是在右侧列出的:
Regular Expressions Pattern Modifiers
g Global match
i Case-insensitive
m Multiple lines
s Treat string as single line
x Allow comments and white space in pattern
e Evaluate replacement
U Ungreedy pattern
请注意,JavaScript正则表达式引擎并不支持所有这些标志。有关权威列表,请参阅此MDN article。
所以&#34; g&#34; flag使其全局化,因此它会在找到它的地方替换此模式,而不仅仅是第一个实例(这是replace
方法的默认行为)。
&#34; i&#34; flag使其不区分大小写,因此[a-z]+
之类的模式将匹配"foo"
和"FOO"
。但是,因为您的模式只涉及<
和>
个字符,所以此标记无用。