用正则表达式匹配HTML标签

<script>
    //匹配HTML标签
 方法一:
	 var str = '<p class="odd" id="odd">123</p>';
	 var pattern = /<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g;
	 console.log(str.match(pattern));
 方法二:
	 var str = '<p class="odd" id="odd">123</p>';
	 var pattern = /<[^>]+>/g;
	 console.log(str.match(pattern));
 方法三:
	 var str = '<input type="text" value=">" name="username" />';
	 var pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;
	 console.log(str.match(pattern));
 说明:()表示捕获分组,()会把每个分组里的匹配的值保存起来,使用$n(n是一个数字,表示第n个捕获组的内容)
      (?:)表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来
         没有引用的需求的话,采用非捕获性分组,更为简洁;
 方法四:
	 var str = '<input type="text" value=">" name="username" />';
	 var pattern = /<(?:[^"'>]|(["'])[^"']*\1)*>/g;
	 console.log(str.match(pattern));
</script>

猜你喜欢

转载自blog.csdn.net/qq_42209411/article/details/83152257
今日推荐