正則表達式初識二

原子表

原子表即[],例如\d代表所以數字,即等價於[0-9]
/王三|趙三|李三|張三/ 等價於 /[王趙李張]三/
不匹配這四個可寫成/[^王趙李張]三/
中括號代表匹配其中的任何一個,例如匹配數字和所有的字母,
正則表達式爲/[0-9a-zA-Z]/

量詞

可以使用一些元字符,重複的表示一些原子或元字符

*      重複零次或更多次
+      重複一次或更多次
?      重複零次或一次
{n}    重複n次
{n,}   重複n次或更多次
{n,m}  重複n到m次

/\d{6}/等價於/\d\d\d\d\d\d/      即數字出現6次符合要求即匹配成功
/國{10}/                        表示國字出現10次
/中\d{1,}國/                    表示中國之間最少出現一個數字
/中\d*國/                       表示0個或任意個數字
/中\d?國/                       表示0個或1個數字
/中\d+國/                       表示中間最少有一個數字

小試牛刀

<script type="text/javascript">		
	var  reg = /您的驗證碼是\d{6}請儘快輸入/;
	var  str = '您的驗證碼是666666請儘快輸入';
	// 用正則規則去匹配字符串
	var result = reg.test(str);
	document.write(result);
</script>

在這裏插入圖片描述
在這裏插入圖片描述

小試牛刀

<body>	
	<script type="text/javascript">		
		var  reg = /國{6}/;
		var  str = '您的驗證碼是國國國國國國';
		// 用正則規則去匹配字符串
		var result = reg.test(str);
		document.write(result);
	</script>		
</body>

在這裏插入圖片描述
在這裏插入圖片描述

exec

小試牛刀

可以輸出匹配到的內容,以及匹配到的位置

<body>	
	<script type="text/javascript">		
		var  reg = /\d\d/;
		var  str = '您的驗證碼是123456';
		// 用正則規則去匹配字符串
		var result = reg.exec(str);
		console.log(result);
		document.write(result);
	</script>		
</body>

在這裏插入圖片描述

用火狐頁面打開,右鍵點擊頁面,選擇查看元素,然後點擊控制檯,查看輸出信息
看見用exec方法得到的結果是一個對象,或者說是一個數組,數組裏面的0號存
儲的是匹配的內容,對象裏面有匹配到的元素,以及匹配到的下標位置,可以調
用result.index方法輸出下標,document.write(result[0])輸出匹配到的內容

在這裏插入圖片描述

貪婪與非貪婪

小試牛刀

貪婪  即進可能匹配多的內容

<body>	
	<script type="text/javascript">		
		var  reg = /<p>.*<\/p>/;
		var  str = '<p>1234</p><p>china</p>';
		// 用正則規則去匹配字符串
		var result = reg.exec(str);
		console.log(result);
		
		document.write(result);
	</script>		
</body>

在這裏插入圖片描述
在這裏插入圖片描述

禁止貪婪
.  代表匹配任意內容, * 代表匹配0到任意多個,當 .* 組合到一起,就會盡肯多的匹配內容
? 代表0個或1個,    .*?組合到一起,就會表示儘可能少的匹配內容

邊界匹配

^   代表要匹配的字符串開始的地方
$   代表要匹配的字符串結束的地方

也就是說  正則表達式要匹配整個字符串,整個字符串必須都要符合規則

匹配qq號
reg = /^[1-9]\d{4-10}$/;
匹配身份證號
reg = /^[1-9]\d{16}[Xx\d]$/

小試牛刀-匹配手機號

	<body>	
		
		<input type="text" id="tel"/>
		<input type="button" value="點擊驗證手機號" id="btn">
		<script type="text/javascript">		
			var tel = document.getElementById("tel");
			var btn = document.getElementById("btn");
			
			btn.onclick = function(){
				var reg = /^1(59|32)\d{8}$/
				var result = reg.test(tel.value);
				
				if(result){
					document.write("你的手機號合法");
				}else{
					document.write("你的手機號不合法");
				}
			}
		</script>		
	</body>

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章