回到课程

查找完整标签

写出一个正则表达式,用于查找 <style...> 标签。它应该匹配完整的标签:该标签可能没有特性(attributes)<style>,也可能有很多特性 <style type="..." id="...">

……同时正则表达式不应该匹配 <styler>

例如:

let regexp = /你的正则表达式/g;

alert( '<style> <styler> <style test="...">'.match(regexp) ); // <style>, <style test="...">

模式的开头很明显:<style

……但我们不能简单地将表达式写为 <style.*?>,因为会匹配上 <styler>

我们要匹配的是在 <style 之后紧跟着一个空格然后是可选的其他内容,或者直接是闭标签 >

写成正则表达式即为:<style(>|\s.*?>)

代码运行如下:

let regexp = /<style(>|\s.*?>)/g;

alert( '<style> <styler> <style test="...">'.match(regexp) ); // <style>, <style test="...">