电竞比分网-中国电竞赛事及体育赛事平台

分享

正則表達(dá)式A - 方法及特殊字符用法

 AnXuelin295 2021-01-17

  課程大綱 

1.正則表達(dá)式的概念及作用
2.正則表達(dá)式的創(chuàng)建方法
3.正則表達(dá)式的用法
正則表達(dá)式概念:

正則表達(dá)式是由普通字符及特殊字符組成的對(duì)字符串進(jìn)行過(guò)濾的邏輯公式
正則表達(dá)式的創(chuàng)建方式:

1.字面量方式創(chuàng)建 (隱式創(chuàng)建):
var reg = /正則表達(dá)式/gi;
2.構(gòu)造函數(shù)方式 (顯示創(chuàng)建):
var regExp = new RegExp( “正則表達(dá)式”,”gi” );

我們來(lái)實(shí)際編寫(xiě)一下:
運(yùn)行結(jié)果如下:

test方式是用來(lái)檢測(cè)字符串中是否含有符合規(guī)則的子字符串。有就返回 true;沒(méi)有返回false

除了正則表達(dá)式這種書(shū)寫(xiě)方式呢,通常我們需要給正則表達(dá)式添加一些修飾符

正則表達(dá)式修飾符:
也就是我們上面創(chuàng)建方式的最后兩個(gè)字符g和i

g:表示全局匹配
i:表示忽略大小寫(xiě)

我們來(lái)編寫(xiě)一下:
運(yùn)行結(jié)果如下:

math方法:字符串方法,在字符串內(nèi)找符合條件的值,或者找一個(gè)或多個(gè)正則表達(dá)式

如果我們不加g,就會(huì)返回一個(gè)abc

再來(lái)看一下i的編寫(xiě):
如果我們只寫(xiě)i
那么運(yùn)行結(jié)果仍然是1個(gè),因?yàn)闆](méi)有加全局變量:
這就需要g和i的同時(shí)使用,才可以全部取到:
運(yùn)行結(jié)果如下:
不分大小寫(xiě)全部獲取,這時(shí)輸出結(jié)果正確
除了test和match方法以外:

seach:字符串方法,用于查找符合規(guī)則的子字符串的位置,只返回第一個(gè)匹配的位置

運(yùn)行結(jié)果如下:

split:字符串方法,以某某字符串進(jìn)行分割

以!分割,運(yùn)行結(jié)果如下:

replace:字符串方法,替換,第二個(gè)參數(shù)將第一個(gè)參數(shù)替換掉

用666替換tmd,運(yùn)行結(jié)果如下:

exec正則表達(dá)式的方法,將匹配成功的內(nèi)容放到數(shù)組里沒(méi)有匹配成功返回null

exec方法需要多次寫(xiě)才能輸出對(duì)應(yīng)的結(jié)果,,運(yùn)行結(jié)果如下:
這也是exec和match的區(qū)別


  正則表達(dá)式特殊字符 

. 除了換行符之外的所有單個(gè)字符

運(yùn)行結(jié)果如下:
如果g后面是一個(gè)點(diǎn),g.g,返回的將是false


*  重復(fù)多次匹配,匹配任意( 0 - n次)

運(yùn)行結(jié)果如下:
如果str中沒(méi)有g(shù)或l或e,就會(huì)返回false,再多g也是true

+  表示至少匹配一次,至少有一個(gè)

運(yùn)行結(jié)果如下:
如果str中為ggle,那么匹配結(jié)果就為true

?  匹配0到1次匹配

運(yùn)行結(jié)果如下:
str中g(shù)再多,也是返回最多一次,最少0次的g

[ ]  可以出現(xiàn)的范圍
例如[0-9]表示0到9之間的整數(shù)

運(yùn)行結(jié)果如下:
也可以測(cè)試a-z或者A-Z等等一些范圍

\w  數(shù)字字母下劃線,等同于上面匹配 [0-9a-ZA-Z_]

運(yùn)行結(jié)果如下:
只要是在[0-9a-zA-Z_]之內(nèi)的都返回true

\W  表示與小寫(xiě)\w相反的結(jié)果
非 [0-9a-zA-Z_] 數(shù)字字母下劃線都為true

運(yùn)行結(jié)果如下:

\d  數(shù)字0-9,相當(dāng)于[0-9]

運(yùn)行結(jié)果:
如何和上面寫(xiě)成\d+,就會(huì)將12345當(dāng)做一個(gè)數(shù)組

\D  和\d相反,非數(shù)字,非[0-9]

運(yùn)行結(jié)果如下:
如果12345后面有字母就會(huì)返回true

\s  匹配空格

運(yùn)行結(jié)果如下:

{m,n}  至少匹配m次,至多匹配n次
三種寫(xiě)法如下所示:
運(yùn)行結(jié)果如下:

/^  匹配開(kāi)始  $/匹配結(jié)尾

很明顯,以e結(jié)尾,返回false:
如果將$后改為e就為true

|  或

運(yùn)行結(jié)果如下:

( )  分組,將內(nèi)容作為一個(gè)整體進(jìn)行匹配

運(yùn)行結(jié)果如下:
這個(gè)分組內(nèi)容的獲取對(duì)象是RegExp.$1
運(yùn)行結(jié)果如下:

$1  $2等  獲取對(duì)應(yīng)的元素

運(yùn)行結(jié)果如下:


本節(jié)所講到的:

正則表達(dá)式方法:test、 exec
字符串方法:match、search、split、replace、replace

格式:
正則方法是  定義的正則表達(dá)式 . 正則方法 (字符串);
字符串方法是  字符串 . 字符串方法 (定義的正則表達(dá)式);

特殊字符的用法:

. //除了換行符之外的所有單個(gè)字符
*  //重復(fù)多次匹配
+ //表示至少匹配一次
? //匹配0到1 次
[]  //可以出現(xiàn)的范圍  例如[0-9]表示0到9之間的整數(shù)
\w  //數(shù)字字母下劃線,等同于上面[0-9a-ZA-Z_]
\W  //非數(shù)字字母下劃線,非[0-9a-ZA-Z_]
\d  //數(shù)字0-9,相當(dāng)于[0-9]
\D //非數(shù)字0-9,相當(dāng)于非[0-9]
\s  //匹配空格
{m,n}  //至少匹配m次,至多匹配n次
/^ //匹配開(kāi)始  $/匹配結(jié)尾
| //或,匹配其中的一個(gè)
( )  //分組,將內(nèi)容作為一個(gè)整體進(jìn)行匹配
$1  $2  //獲取對(duì)應(yīng)的元素
- 寫(xiě)作不易,大家多多關(guān)注,謝謝啦-


---web分享,分享的不只是web

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多