課程大綱
1.正則表達式的概念及作用
2.正則表達式的創建方法
3.正則表達式的用法
正則表達式概念:
正則表達式是由普通字符及特殊字符組成的對字符串進行過濾的邏輯公式
正則表達式的創建方式:
1.字面量方式創建 (隱式創建):
var reg = /正則表達式/gi;
2.構造函數方式 (顯示創建):
var regExp = new RegExp( 「正則表達式」,」gi」 );
我們來實際編寫一下:
運行結果如下:
test方式:是用來檢測字符串中是否含有符合規則的子字符串。有就返回 true;沒有返回false
除了正則表達式這種書寫方式呢,通常我們需要給正則表達式添加一些修飾符
正則表達式修飾符:
也就是我們上面創建方式的最後兩個字符g和i
g:表示全局匹配
i:表示忽略大小寫
我們來編寫一下:
運行結果如下:
math方法:字符串方法,在字符串內找符合條件的值,或者找一個或多個正則表達式
如果我們不加g,就會返回一個abc
再來看一下i的編寫:
如果我們只寫i
那麼運行結果仍然是1個,因為沒有加全局變量:
這就需要g和i的同時使用,才可以全部取到:
運行結果如下:
不分大小寫全部獲取,這時輸出結果正確
除了test和match方法以外:
seach:字符串方法,用於查找符合規則的子字符串的位置,只返回第一個匹配的位置
運行結果如下:
split:字符串方法,以某某字符串進行分割
以!分割,運行結果如下:
replace:字符串方法,替換,第二個參數將第一個參數替換掉
用666替換tmd,運行結果如下:
exec:正則表達式的方法,將匹配成功的內容放到數組裡,沒有匹配成功返回null
exec方法需要多次寫才能輸出對應的結果,,運行結果如下:
這也是exec和match的區別
正則表達式特殊字符
.除了換行符之外的所有單個字符
運行結果如下:
如果g後面是一個點,g.g,返回的將是false
* 重複多次匹配,匹配任意( 0 - n次)
運行結果如下:
如果str中沒有g或l或e,就會返回false,再多g也是true
+ 表示至少匹配一次,至少有一個
運行結果如下:
如果str中為ggle,那麼匹配結果就為true
? 匹配0到1次匹配
運行結果如下:
str中g再多,也是返回最多一次,最少0次的g
[ ] 可以出現的範圍
例如[0-9]表示0到9之間的整數
運行結果如下:
也可以測試a-z或者A-Z等等一些範圍
\w 數字字母下劃線,等同於上面匹配 [0-9a-ZA-Z_]
運行結果如下:
只要是在[0-9a-zA-Z_]之內的都返回true
\W 表示與小寫\w相反的結果
非 [0-9a-zA-Z_] 數字字母下劃線都為true
運行結果如下:
\d 數字0-9,相當於[0-9]
運行結果:
如何和上面寫成\d+,就會將12345當做一個數組
\D 和\d相反,非數字,非[0-9]
運行結果如下:
如果12345後面有字母就會返回true
\s 匹配空格
運行結果如下:
至少匹配m次,至多匹配n次
三種寫法如下所示:
運行結果如下:
/^ 匹配開始 $/匹配結尾
很明顯,以e結尾,返回false:
如果將$後改為e就為true
| 或
運行結果如下:
( ) 分組,將內容作為一個整體進行匹配
運行結果如下:
這個分組內容的獲取對象是RegExp.$1
運行結果如下:
$1 $2等 獲取對應的元素
運行結果如下:
本節所講到的:
正則表達式方法:test、 exec
字符串方法:match、search、split、replace、replace
格式:
正則方法是 定義的正則表達式. 正則方法 (字符串);
字符串方法是 字符串 . 字符串方法 (定義的正則表達式);
特殊字符的用法:
.//除了換行符之外的所有單個字符
* //重複多次匹配
+//表示至少匹配一次
?//匹配0到1 次
[] //可以出現的範圍 例如[0-9]表示0到9之間的整數
\w //數字字母下劃線,等同於上面[0-9a-ZA-Z_]
\W //非數字字母下劃線,非[0-9a-ZA-Z_]
\d //數字0-9,相當於[0-9]
\D//非數字0-9,相當於非[0-9]
\s //匹配空格
//至少匹配m次,至多匹配n次
/^//匹配開始 $/匹配結尾
|//或,匹配其中的一個
( ) //分組,將內容作為一個整體進行匹配
$1 $2等 //獲取對應的元素
-寫作不易,大家多多關注,謝謝啦-
---web分享,分享的不只是web