亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

正則表達(dá)式之字符串模式匹配實(shí)例詳解

 更新時(shí)間:2022年04月22日 09:33:37   作者:_?大聰明  
正則表達(dá)式就是一種強(qiáng)大而靈活的文本處理工具,正則可以很好的解決這類字符串校驗(yàn)問題,下面這篇文章主要給大家介紹了關(guān)于正則表達(dá)式之字符串模式匹配的相關(guān)資料,需要的朋友可以參考下

前言

今天我們來學(xué)習(xí)正則表達(dá)式,正則表達(dá)式的應(yīng)用十分廣泛,幾乎每個(gè)涉及到交互的項(xiàng)目都會(huì)用到的,學(xué)會(huì)正則表達(dá)式之后會(huì)讓你除了提高效率外,會(huì)給你帶來絕對(duì)的成就感。

接下來我們正式開始!

什么是正則表達(dá)式

正則表達(dá)式是檢查、匹配字符串的表達(dá)式

正則表達(dá)式用來描述某種規(guī)則,同時(shí)它不是某種語言專有的技術(shù),它對(duì)主流的語言都有良好的支持。

正則表達(dá)式的主要使用場(chǎng)景是:字符串檢驗(yàn),查找與替換。

示例:檢查輸入身份證號(hào)是否合法的正則表達(dá)式

正則表達(dá)式:(^\d{18}$)|(^\d{17}(\d|X|x)$)

現(xiàn)在你也許看不懂,但是等看完這篇博客之后在加以練習(xí)你就能輕松寫出來了。

字符范圍匹配

下面這個(gè)表是對(duì)單個(gè)字符約束的一些正則表達(dá)式:

正則表達(dá)式說明
A精準(zhǔn)匹配單個(gè)字符
x|y允許出現(xiàn)的2個(gè)字符
[xyz]字符集合,允許出現(xiàn)的2個(gè)字符
[a-z]字符集合
[^xyz]集合內(nèi)字符不允許出現(xiàn)

例如:匹配數(shù)字范圍(0570-0579)

正則表達(dá)式為:057[0-9]

元字符

用于匹配的特殊符號(hào)又稱作元字符

常用的元字符如下:

正則表達(dá)式說明
\d匹配任意單個(gè)數(shù)字
\D匹配\d規(guī)則以外的任意單個(gè)字符
\w匹配任意單個(gè)數(shù)字字母下劃線
\W匹配\w規(guī)則以外的任意單個(gè)字符
\s匹配單個(gè)空格
\n匹配單個(gè)換行符
.匹配任意單個(gè)字符(換行符除外)
\.特殊字符只匹配.

示例:請(qǐng)匹配杭州與寧波座機(jī)號(hào)碼(0571|0574-XXXXXXXX)

正則表達(dá)式為:057[14]-\d\d\d\d\d\d\d\d

多次重復(fù)匹配

當(dāng)我們匹配的字符串比較長,比如身份證號(hào)有18為一個(gè)一個(gè)寫\d比較麻煩,多次重復(fù)匹配只能簡化我們的操作。

常用的多次重復(fù)匹配如下:

正則表達(dá)式說明
A{N}精準(zhǔn)N次匹配
A{N,}最少出現(xiàn)N次
\d{N,M}最少可以出現(xiàn)N次,最多可以出現(xiàn)M次
\d*可以出現(xiàn)零次至無限次
\d+最少出現(xiàn)一次,相當(dāng)于{1,}
\d?最多出現(xiàn)1次,相當(dāng)于{0,1}

示例:匹配全國的座機(jī)號(hào)(區(qū)號(hào)3或4位-電話號(hào)碼7或8位)

正則表達(dá)式:\d{3,4}-\d{7,8}

定位匹配

正則表達(dá)式說明
^A.*頭匹配-以字符A開頭
.*A$尾匹配-以字符A結(jié)尾
^A.*A$全字匹配-以字符A開頭結(jié)尾

示例:以C開頭,B結(jié)尾的字符串

正則表達(dá)式:^C.*B$

貪婪模式與非貪婪模式

貪婪模式:在滿足條件的情況下盡可能多匹配到字符串
非貪婪模式:在滿足條件的情況下盡可能少匹配到字符串

正則表達(dá)式在默認(rèn)的情況下就是貪婪模式

示例:輸入123456

  • 在使用正則表達(dá)式\d{4,5},之后匹配到的是12345,可見這就是貪婪模式。
  • 在使用正則表達(dá)式\d{4,5}?,之后匹配到的是1234,可見這就是非貪婪模式。

可見,只需要在正則表達(dá)式的后面加一個(gè)?,就可以從貪婪模式變換到非貪婪模式。

表達(dá)式分組

分組就是將正則分組為多個(gè)子表達(dá)式。

示例:abababcdcdcd

正則表達(dá)式:(ab){3}(cd){3}

示例:檢查輸入身份證號(hào)是否合法的正則表達(dá)式

正則表達(dá)式:(^\d{18}$)|(^\d{17}(\d|X|x)$)

結(jié)合JavaScript練習(xí)正則表達(dá)式

在JS中定義正則表達(dá)式對(duì)象只需要在//之間書寫正則表達(dá)式即可

我們實(shí)現(xiàn)用表單來驗(yàn)證輸入姓名和身份證號(hào)是否合法。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="#" method="post" id ="frmInfo">
		<div id="err" style="color:red">
			
		</div>
		<div>
			姓名:<input id="name" name="name"/>
		</div>
		<div>
			身份證:<input id ="idno" name="idno"/>
		</div>
		<div>
			<input type = "submit"/>
		</div>
	</form>
	<script type="text/javascript">
		document.getElementById("frmInfo").onsubmit = function(){
			//漢字范圍\u4e00-\u9fa5
			var regex1 = /^[\u4e00-\u9fa5]{2,8}$/;
			var regex2 = /^[1234568]\d{16}[0-9xX]$/;
			var name = document.getElementById("name").value;
			var idno = document.getElementById("idno").value;
			//利用正則表達(dá)式進(jìn)行匹配,true-匹配,false-失敗 
			if(regex1.test(name) == false){
				document.getElementById("err").innerHTML = "無效姓名";
				return false;
			}else if(regex2.test(idno) == false){
				document.getElementById("err").innerHTML = "無效身份證號(hào)";
				return false;
			}else{
				alert("驗(yàn)證通過,準(zhǔn)備提交!");
				return true;
			}
		}
	</script>
</body>
</html>

輸出:

結(jié)語

多加練習(xí)之后,書寫起來還是比較簡單的。而且很有成就感。加油!

到此這篇關(guān)于正則表達(dá)式之字符串模式匹配的文章就介紹到這了,更多相關(guān)正則表達(dá)式字符串模式匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論