我有一个从字符串中删除 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
.我不完全理解这个表达式是如何工作的。能否提供一个解释?我可以通过阅读备忘单找到每个 Angular 色本身的行为:http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
但是“/ig”的意义是什么?
最佳答案
那些是全局标志。您的备忘单实际上在右侧列出了它们:
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 .
因此“g”标志使其成为全局模式,因此它会在任何发现的地方替换此模式,而不仅仅是第一个实例(这是 replace
方法的默认行为)。
“i”标志使其不区分大小写,因此像 [a-z]+
这样的模式将匹配 "foo"
和 "FOO"
.但是,因为你的模式只涉及 <
和 >
字符,这个标志是没用的。
关于javascript - 解释用于从 String 中删除 html 代码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790624/