第一節:基本概念
#JavaScript#正則表達式已經成為各大程式語言的標準,只是在不同的語言中,所使用的方式有所不同,但基本上核心的功能都是一樣的。
正則表達式的核心功能是建立一種匹配模式,這個匹配模式可以理解為模板,模子。
然後再拿具體的字符串來與這個模式進行匹配,如果匹配上,則表示符合要求,則進一步採用措施。
第二節:正則表達式特點
正則表達式是由字符串組成的。正則表達式只是一種搜索模式或匹配模式。對於具體的字符串,需要經過正則表達式的計算後,形成一個值來判斷是否匹配上。正則表達式可簡單,可複雜,需要根據語法定義模式。在各個程式語言中,也會推出一些與正則表達式相關的輔助操作,如替找操作等。第三節:正則表達式語法
在JavaScript中,對於正則表達式的定義,使用字面量表示法的基本語法如下:
/模式/修飾符
基本語法說明如下:
使用兩個/來表示一個正則表達式匹配模式。第一個/後面跟匹配模式。例如:var patt = /Yido/i,Yido是一個簡單的匹配模式,用於字符串的搜索。第二個/後面跟修飾符標誌。這裡的修飾符標誌是i,表示不分區大小寫進行匹配。
第四節:search()方法的使用
4.1. 基本含義
search()方法是字符串對象的方法,可與正則表達式對接,用於將當前字符串在正則表達式中搜索並匹配。
Search()方法返回的類型是一個整數值:
返回第一次匹配到的字符串的開始索引值,索引值是從0開始的。如果字符串沒有在正則表達式中匹配到,則返回-1。4.2. 參數是正則表達式
當我們使用JavaScript定義一個字符串後,在字符串對象上可以使用search()方法,並且可以將正則表達式做為參數傳入到該方法中。
Search()方法的使用正則表達式的代碼如下:
<script type="text/javascript">//正則表達式var patt = /Yido/i;//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>
在此代碼中,/Yido/i是一個簡單的正則表達式,表示在字符串中搜索是否存在Yido,i表示不區分大小寫,如果匹配到了,則返回相應的索引值,如果沒有匹配到,則返回-1。
在Visual Studio 2019中的完整代碼如下:
圖1
現在運行一下圖1的代碼,看是否能匹配上Yido,返回的整數是多少:
圖2
從運行的結果上看,返回的結果是6,表示匹配到了,字符串匹配上的起始位置是6。
再來看一個例子,JavaScript代碼如下:
<script type="text/javascript">var x = /[0-9]/i;var s1 = "Hello World 8";var index = s1.search(x);document.write(index);</script>
在此JS代碼中,正則表達式中使用了[0-9],表示0到9之間的整數。可匹配0-9之間的整數。
在字符串s1中,有一個整數值8,現在這段代碼的含義是在s1字符串中匹配0-9之間的整數,正好8在0-9之間,所以是可以匹配上的。運行結果如下:
圖3
在字符串的索引值為12的位置匹配成功了。
4.3. 參數是字符串
對於search方法,還可以使用字符串作為參數。實際上是將字符串參數轉換成了一個兼容的正則表達式。
JavaScript代碼如下:
<script type="text/javascript">//正則表達式var patt = "Yido";//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>
在此JS代碼中,將定義正則表達式的兩個/去掉了,變成了一個普通的字符串,但是運行出來的結果,還是6,表示匹配成功了,這說明還是將patt字符串轉換為了正則表達式來匹配。