1、匹配HTML开始标签及结束标签
这段正则,为什么比网上搜索的复杂一些呢?主要是加了匹配特测情况的问题,避免BUG。
举例:<div debug=">" >
1、匹配HTML开始标签及结束标签
这段正则,为什么比网上搜索的复杂一些呢?主要是加了匹配特测情况的问题,避免BUG。
举例:<div debug=">" >
const reg_tags = /<((["'])+.*?\2|[^>])+>/g;
开始和结束
2、匹配HTML开始标签
const reg_tag_start = /<[^\\\/]((["'])+.*?\2|[^>])+>/
开始
3、匹配HTML结束标签
const reg_tag_end = /<[\\\/]+[^<>]*>*/
结束
4、匹配HTML标签属性
const reg_tag_attrs = /(?<=\s)[\w:-]+(=(["']).*?\2)*/g;
标签属性
5、获取HTML标签属性名与值
const reg_tag_attr_info = /(^[^=]+|(?<=(['"])).*?(?=\2))/g;
属性名与值
6、获取HTML标签的名称
const reg_tag_name = /(?<=<[\/\s]*)\w+(?=(\s+(?![\s=])|>))/;
标签名称
7、匹配HTML文档类型声明
const reg_doctype = /<!doctype[^<>]*>*/i
声明
8、匹配HTML文档注释
const reg_tag_note = /<\!.*?>/
注释
9、匹配HTML文本内容
const reg_text = /(?<=<[\w]+.*?>)[\s\S]*?(?=[\w]*?>)/
文本
10、其它
//g 正则表达式后面加g,表示全局匹配。
//i 正则表达式后面加i,表示不区分大小写。
[\u4e00-\u9fa5],表示匹配中文。
中文
[^\x00-\xff\u4e00-\u9fa5],表示匹配中文符号
中文符号
以上正则表达式,是在写一个生成HTML抽象语法树的工具时,不断摸索出来。如果您有更好的写法,欢迎交流。
人人为我,我为人人,欢迎您的浏览,我们一起加油吧。