1. 程式人生 > >用正則表示式匹配HTML標籤

用正則表示式匹配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>