成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

正則表達(dá)式隨筆

spademan / 1540人閱讀

摘要:如果匹配成功,則返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引否則,返回。參數(shù)如果傳入一個(gè)非正則表達(dá)式對(duì)象,則會(huì)隱式地使用將其轉(zhuǎn)換為一個(gè)參數(shù)如果你未提供任何參數(shù),直接使用,那么你會(huì)得到一個(gè)包含空字符串的。

正則表達(dá)式

一直使用簡(jiǎn)單的正則表達(dá)式,遇到難點(diǎn)的就無(wú)法簡(jiǎn)潔高效的寫出正則,故此整理一篇需要記憶應(yīng)用的正則使用。

正則表達(dá)式作用

匹配一個(gè)字符串的子字符串(子集),或者替換該字符串。

不得不提的String和reg的常用方法

codePointAt(pos) 方法:得到字符的碼位。漢字可以得到完整的碼位

fromCodePoint() 方法:參數(shù)提供字符的碼位返回對(duì)應(yīng)的字符

include() 方法: 如果檢測(cè)到指定文本就返回true,否則返回false。接受第二個(gè)參數(shù)為開始搜索的指定索引值

startsWith() 方法: 如果在起始位置檢測(cè)到指定文本就返回true,否則返回false。接受第二個(gè)參數(shù)為開始搜索的指定索引值

endsWith() 方法: 從字符串末尾往前匹配。如果在結(jié)束部分檢測(cè)到指定文本返回true,否則返回false。接受第二個(gè)參數(shù)為開始搜索的指定索引值

repeat()方法: "o".repeat(3) // ooo 表示重復(fù)某個(gè)字符串指定次數(shù)

reg.test(str)方法: test()方法執(zhí)行一個(gè)檢索,用來(lái)查看正則表達(dá)式在指定的字符串(str)中是否能被匹配。返回 true 或 false。

reg.exec(str)方法: 方法在一個(gè)指定字符串中執(zhí)行一個(gè)搜索匹配。找到返回一個(gè)結(jié)果數(shù)組或未找到 null。 返回的數(shù)組將完全匹配成功的文本作為第一項(xiàng),將正則括號(hào)里匹配成功的作為數(shù)組填充到后面

全局調(diào)用和非全局調(diào)用:全局調(diào)用時(shí),在匹配后,它將把RegExp實(shí)例的lastIndex屬性設(shè)置為匹配文本的最后一個(gè)字符的下一個(gè)位置,當(dāng) exec() 再也找不到匹配的文本時(shí),它將返回null,并把lastIndex屬性重置為0

str.search(reg)方法: 執(zhí)行正則表達(dá)式和 String對(duì)象之間的一個(gè)搜索匹配。如果匹配成功,則 search() 返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引,否則,返回 -1。與上面的reg.test()類似可判斷是否存在某個(gè)正則模式

search() 方法不執(zhí)行全局匹配,它將忽略標(biāo)志g,它同時(shí)忽略正則表達(dá)式對(duì)象的lastIndex屬性,并且總是從字符串的開始進(jìn)行檢索,這意味著它總是返回字符串的第一個(gè)匹配的位置

如果傳入一個(gè)非正則表達(dá)式對(duì)象,則會(huì)使用 new RegExp(obj) 隱式地將其轉(zhuǎn)換為正則表達(dá)式對(duì)象。

str.match(reg)方法: 當(dāng)一個(gè)字符串與一個(gè)正則表達(dá)式匹配時(shí), match()方法檢索匹配項(xiàng)。

參數(shù):如果傳入一個(gè)非正則表達(dá)式對(duì)象,則會(huì)隱式地使用 new RegExp(obj) 將其轉(zhuǎn)換為一個(gè)reg

參數(shù):如果你未提供任何參數(shù),直接使用 match() ,那么你會(huì)得到一個(gè)包含空字符串的 Array :[""] 。

返回值:如果字符串匹配到了表達(dá)式,會(huì)返回一個(gè)數(shù)組,數(shù)組的第一項(xiàng)是進(jìn)行匹配完整的字符串,之后的項(xiàng)是用圓括號(hào)捕獲的結(jié)果。如果沒有匹配到,返回null

全局調(diào)用:全局匹配返回的數(shù)組的內(nèi)容與非全局大不相同,它的數(shù)組元素中存放的是字符串中所有的匹配子串,而且也沒有index屬性或input屬性

非全局調(diào)用:只在字符串中匹配依次,若沒有匹配到文本,match()返回null,匹配到返回一個(gè)數(shù)組,數(shù)組中第一個(gè)元素存放匹配到的文本,其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本,數(shù)組具有兩個(gè)屬性,index ( 匹配文本的起始字符在字符串位置 )和 input屬性

String.prototype.replace(reg, function): 是將匹配內(nèi)容應(yīng)用函數(shù)后返回一個(gè)新字符串。

String.prototype.split(reg): 以指定的分隔符字符串將一個(gè)String對(duì)象分割成字符串?dāng)?shù)組, 如果分隔符是("")則會(huì)每個(gè)字符都切割。

注意:當(dāng)字符串為空時(shí),split()返回一個(gè)包含一個(gè)空字符串的數(shù)組,而不是一個(gè)空數(shù)組,如果字符串和分隔符都是空字符串,則返回一個(gè)空數(shù)組。

Array.prototype.join()方法: join() 方法將一個(gè)數(shù)組(或一個(gè)類數(shù)組對(duì)象)的所有元素連接成一個(gè)字符串并返回這個(gè)字符串,不改變?cè)瓟?shù)組。

參數(shù): 指定一個(gè)字符串將數(shù)組的每一個(gè)元素以這個(gè)字符串拼接,()為空默認(rèn)為, 當(dāng)("")是引號(hào)時(shí)則元素之間沒有任何字符。這個(gè)方法常常和String.prototype.split()連用

一些常用的匹配字符

預(yù)定義類

字符集 等價(jià)于
. [ ^ rn ] 除了換行和回車符之外所有字符
d [ 0-9 ]
D [ ^ 0-9 ]
s [ tvnr ] 包含制表符、空格、垂直制表符
S [ ^ tvnr ]
w [a-zA-Z ]
W [ ^ a-zA-Z ]

量詞

重復(fù)修飾符 描述 示例
{n} 指定n 次 /d{5}/數(shù)字出現(xiàn)5次
{n,} 最少n次 /d{5,}/數(shù)字至少出現(xiàn)5次
{n,m} n值m次
? 最多一次,{0,1}
+ 最少一次
* 任意次

邊界字符集

字符 含義
^ 以 xxx開頭
$ 以 xxx結(jié)尾
 單詞邊界
B 非單詞邊界
正則語(yǔ)法 構(gòu)造方式

const re1 = /d/ 字面量語(yǔ)法 創(chuàng)建

const re2 = new RegExp(d) 構(gòu)造函數(shù) 創(chuàng)建

使用正則搜索
str = "It will rain tomorrow"

//字符串在前
str.startWith("will") //true
str.endsWith("will") //true
str.includes("will") //true

str.match(/w{3,}/g) // will rain tomorrow
str.search(/w{3,}/g) // 3

//正則表達(dá)式在前

/w{3,}/g.test(str) //true

....
常用用法

常用修飾符

g:global,全文搜索,不添加的話搜索到第一個(gè)結(jié)果停止搜索
i:ingore case,忽略大小寫,默認(rèn)大小寫敏感
m:multiple lines,多行搜索

D 和 S W常用來(lái)去除不想要的

D可用來(lái)去除不是數(shù)字的的字符

比如: var yourNumber  = "phoneNumber15555555555"
var number.replace(/D/,"")

S 可用來(lái)確保必填字段中字符

var username = "  daixixi "
var value = /S/.test(username)

各種修飾符時(shí)修飾前一個(gè)元素出現(xiàn)的次數(shù)

var a = "hello world2hello china".match(/w+/)

.匹配除了換行和回車符之外字符,可以使用[/sS/]匹配所有字符

分組 : 當(dāng)某一個(gè)修飾符對(duì)前一個(gè)元素進(jìn)行影響時(shí),若想對(duì)一組有作用則使用分組 /(ab)+/ 匹配至少一組連續(xù)的ab

__或__: 使用豎線表示或,/a|b/ 表示匹配a或b(有個(gè)笑話就是這個(gè)|寫成中文的丨怎么都查不出。。。)

取反 :有限字符集以外的字符 /[^abc]/ 除abc以外字符

__范圍__: 使用[a-z] 表示a到z 之間任意一個(gè)

__字符類__:使用[]來(lái)構(gòu)建一個(gè)簡(jiǎn)單的類,/[abc]/ 表示匹配其中任意一個(gè)均可

貪婪模式和非貪婪模式: 在設(shè)置了量詞后匹配是默認(rèn)是貪婪模式會(huì)即以最大的量詞進(jìn)行匹配,不過(guò)在量詞后面加上?后就可以取最小量詞進(jìn)行匹配,是否匹配結(jié)束一般取決于是否加g

    "123456789".match(/d{3,5}/g); //["12345", "6789"]  
    "123456789".match(/d{3,5}?/g); //["123", "456", "789"]  

分組嵌套:

var str = "

前瞻:

表達(dá)式 含義
exp1(?=exp2) 匹配后面是exp2的exp1
exp1(?!exp2) 匹配后面不是exp2的exp1

得到是exp1的值,不過(guò)需要滿足條件才會(huì)被匹配中

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94616.html

相關(guān)文章

  • 《JavaScript權(quán)威指南》隨筆(一)

    摘要:每個(gè)構(gòu)造函數(shù)定義了一類對(duì)象,表示由構(gòu)造函數(shù)初始化對(duì)象的集合。嚴(yán)格模式下,明確禁止八進(jìn)制數(shù)。日期和時(shí)間構(gòu)造函數(shù)用來(lái)創(chuàng)建表示日期和時(shí)間的對(duì)象,包含方法。模式匹配函數(shù)是一個(gè)構(gòu)造函數(shù),創(chuàng)建正則表達(dá)式。布爾值表示兩種狀態(tài),使用保留字和。 《Javascript權(quán)威指南》就是前端工程師口中常說(shuō)的犀牛書,得名是因?yàn)橹形姆g出版的書籍封面是一只犀牛,是學(xué)習(xí)JavaScript的必讀書籍。 JavaSc...

    SwordFly 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...

    jsbintask 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...

    muddyway 評(píng)論0 收藏0
  • 項(xiàng)目隨筆

    摘要:在中請(qǐng)求服務(wù)器數(shù)據(jù),并將結(jié)果,也可以在結(jié)果中再添加一些數(shù)據(jù)再,這樣,在中就可以用來(lái)獲取這些結(jié)果了。當(dāng)語(yǔ)句里面沒有表達(dá)式,只是某個(gè)值時(shí)如它會(huì)自動(dòng)執(zhí)行操作,即 1.render中最好不要放處理數(shù)據(jù)的邏輯,不能改變props,state的值,不然render后又得render一次,造成多次render),render中不要用localStorate,和sessionStorage(這算是操作...

    everfly 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<