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

JavaScript中正則表達(dá)式的實(shí)際應(yīng)用詳解

 更新時(shí)間:2021年05月06日 10:22:28   作者:打游戲也要有夢想  
這篇文章主要給大家介紹了關(guān)于JavaScript中正則表達(dá)式實(shí)際應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

實(shí)際工作中,JavaScript正則表達(dá)式還是經(jīng)常用到的。所以這部分的知識(shí)是非常重要的。

一、基礎(chǔ)語法:

第一種:字面量語法

var expression=/pattern/flags;

第二種:RegExp構(gòu)造函數(shù)語法

var pattern = /\w/gi;  //字面量語法
var pattern = new RegExp('\\w', 'gi');//構(gòu)造函數(shù)語法,這兩者是等價(jià)的

這里有個(gè)注意點(diǎn)就是:如果正則表達(dá)式是動(dòng)態(tài)的話,只能選擇第二種。

其中的flags有3個(gè)標(biāo)志

g:表示全局模式,即模式將被應(yīng)用于所有字符串,而非在發(fā)現(xiàn)第一個(gè)匹配項(xiàng)時(shí)立即停止;

i:表示不區(qū)分大小寫模式,即在確定匹配項(xiàng)時(shí)忽略模式與字符串的大小寫;

m:表示多行模式,即在到達(dá)一行文本末尾時(shí)還會(huì)繼續(xù)查找下一行中是否存在與模式匹配的項(xiàng)。

當(dāng)然還有其他的flags,用到的極少,不做過多闡述。

至于以上的\w什么意思,稍等,請(qǐng)繼續(xù)往下看。

二、方法

主要有test(),search(),match(),replace()。當(dāng)然還有其它的很多方法,不作闡述,畢竟用到的很少。

1、test()方法的使用

判斷某個(gè)字符串中是否含有相應(yīng)的字符串

2、search()方法的使用

搜索相應(yīng)的字符串第一次出現(xiàn)的索引位置,如果未找到,則返回-1

3、match()方法的使用

返回匹配的數(shù)組

4、replace()方法的使用,這個(gè)用到的還是非常多的

匹配相應(yīng)的字符串,然后將其替換成其他字符串

三、匹配表達(dá)式跟實(shí)戰(zhàn)

1、斷言:

所謂的斷言呢,就是表示一個(gè)匹配在某些條件下發(fā)生??傊?,概念有點(diǎn)繞,直接看下文。待我慢慢續(xù)來。

字符 描述
^ 匹配開頭
$ 匹配結(jié)尾
\b 匹配單詞的邊界
\B 匹配非單詞的邊界

舉個(gè)例子

我要匹配一個(gè)字符串,開頭到結(jié)尾是dog,忽略大小寫

var pattern = /^dog$/i;//忽略大小寫

console.log(pattern.test('dog'));//true
console.log(pattern.test('sdfdog'));//false
console.log(pattern.test('dog56'));//false
console.log(pattern.test('dOG'));//true
var pattern = /\b\w+/g;//全局匹配,這里的+,是量詞,代表1次或者多次

console.log('Hello World'.match(pattern));//輸出['Hello','World'],這里就是match用法,返回匹配的數(shù)組。

在這里,說下,\b是匹配單詞的邊界,那么\B是匹配非單詞的邊界。一個(gè)小寫,一個(gè)大寫,大寫是反義。那么不必我多說了吧。

再說下單詞邊界,可能很多人都不太清楚單詞邊界

我稍微解釋下啊,比如說,Hello World單詞邊界有四個(gè),分別是H位置,o位置,W位置,d位置

2、字符類:

元字符 描述
. 查找單個(gè)字符,除了換行和行結(jié)束符
\w 查找單詞字符,相當(dāng)于[A-Za-z0-9_]
\W 查找非單詞字符,相當(dāng)于[^A-Za-z0-9_]
下面的反義便不再羅列出來了。
\d 查找數(shù)字,相當(dāng)于[0-9]
\s 查找空白字符
\0 查找NULL字符
\n 查找換行符
\f 查找換頁符
\r 查找回車符
\t 查找制表符
\v 查找垂直制表符

3、范圍:

字符 描述
[abc] 匹配a,b,c中的任意一個(gè)字符
[^abc] 匹配不是a,b,c中的任意一個(gè)字符
[0-9] 匹配0-9任意范圍的數(shù)字,同理[a-z]匹配a-z任意范圍的字符
[a-z] 匹配a到z之間的任意一個(gè)字符
x|y 匹配x或者y

4、量詞:

字符 描述
n+ 匹配任何包含至少一個(gè)字符n的字符串
n* 匹配任何包含零個(gè)或多個(gè)n的字符串
n? 匹配任何包含零個(gè)或者一個(gè)n的字符串
n{x} 匹配包含x個(gè)n的字符串
n{x,y} 匹配最少x個(gè),最多y個(gè)n的字符串

四、拓展

匹配10-36之間的數(shù)字

var pattern = /1[2-9]|[2-3][0-9]|4[0-6]/;//12-46

console.log(pattern.test(11));//false
console.log(pattern.test(12));//true
console.log(pattern.test(20));//true
console.log(pattern.test(36));//true
console.log(pattern.test(46));//true
console.log(pattern.test(47));//false

將'Hello,World!Hello'中的Hello替換成Welcome

這里主要是強(qiáng)調(diào)一下replace方法在正則中的使用,因?yàn)檫@個(gè)在實(shí)際中用到的還是非常多的。后面的flags中的g,加上跟不加上有著很大的區(qū)別的。

var pattern = /Hello/g;

var oldString = 'Hello,World!Hello';
var newString = oldString.replace(pattern, 'Welcome');
console.log(newString);//Welcome,World!Welcome

總結(jié)

到此這篇關(guān)于JavaScript中正則表達(dá)式的實(shí)際應(yīng)用的文章就介紹到這了,更多相關(guān)JavaScript正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論