摘要:如果匹配成功,則返回正則表達式在字符串中首次匹配項的索引否則,返回。參數(shù)如果傳入一個非正則表達式對象,則會隱式地使用將其轉(zhuǎn)換為一個參數(shù)如果你未提供任何參數(shù),直接使用,那么你會得到一個包含空字符串的。
正則表達式
一直使用簡單的正則表達式,遇到難點的就無法簡潔高效的寫出正則,故此整理一篇需要記憶應(yīng)用的正則使用。
正則表達式作用匹配一個字符串的子字符串(子集),或者替換該字符串。
不得不提的String和reg的常用方法codePointAt(pos) 方法:得到字符的碼位。漢字可以得到完整的碼位
fromCodePoint() 方法:參數(shù)提供字符的碼位返回對應(yīng)的字符
include() 方法: 如果檢測到指定文本就返回true,否則返回false。接受第二個參數(shù)為開始搜索的指定索引值
startsWith() 方法: 如果在起始位置檢測到指定文本就返回true,否則返回false。接受第二個參數(shù)為開始搜索的指定索引值
endsWith() 方法: 從字符串末尾往前匹配。如果在結(jié)束部分檢測到指定文本返回true,否則返回false。接受第二個參數(shù)為開始搜索的指定索引值
repeat()方法: "o".repeat(3) // ooo 表示重復(fù)某個字符串指定次數(shù)
reg.test(str)方法: test()方法執(zhí)行一個檢索,用來查看正則表達式在指定的字符串(str)中是否能被匹配。返回 true 或 false。
reg.exec(str)方法: 方法在一個指定字符串中執(zhí)行一個搜索匹配。找到返回一個結(jié)果數(shù)組或未找到 null。 返回的數(shù)組將完全匹配成功的文本作為第一項,將正則括號里匹配成功的作為數(shù)組填充到后面
全局調(diào)用和非全局調(diào)用:全局調(diào)用時,在匹配后,它將把RegExp實例的lastIndex屬性設(shè)置為匹配文本的最后一個字符的下一個位置,當 exec() 再也找不到匹配的文本時,它將返回null,并把lastIndex屬性重置為0
str.search(reg)方法: 執(zhí)行正則表達式和 String對象之間的一個搜索匹配。如果匹配成功,則 search() 返回正則表達式在字符串中首次匹配項的索引,否則,返回 -1。與上面的reg.test()類似可判斷是否存在某個正則模式
search() 方法不執(zhí)行全局匹配,它將忽略標志g,它同時忽略正則表達式對象的lastIndex屬性,并且總是從字符串的開始進行檢索,這意味著它總是返回字符串的第一個匹配的位置
如果傳入一個非正則表達式對象,則會使用 new RegExp(obj) 隱式地將其轉(zhuǎn)換為正則表達式對象。
str.match(reg)方法: 當一個字符串與一個正則表達式匹配時, match()方法檢索匹配項。
參數(shù):如果傳入一個非正則表達式對象,則會隱式地使用 new RegExp(obj) 將其轉(zhuǎn)換為一個reg
參數(shù):如果你未提供任何參數(shù),直接使用 match() ,那么你會得到一個包含空字符串的 Array :[""] 。
返回值:如果字符串匹配到了表達式,會返回一個數(shù)組,數(shù)組的第一項是進行匹配完整的字符串,之后的項是用圓括號捕獲的結(jié)果。如果沒有匹配到,返回null
全局調(diào)用:全局匹配返回的數(shù)組的內(nèi)容與非全局大不相同,它的數(shù)組元素中存放的是字符串中所有的匹配子串,而且也沒有index屬性或input屬性
非全局調(diào)用:只在字符串中匹配依次,若沒有匹配到文本,match()返回null,匹配到返回一個數(shù)組,數(shù)組中第一個元素存放匹配到的文本,其余的元素存放的是與正則表達式的子表達式匹配的文本,數(shù)組具有兩個屬性,index ( 匹配文本的起始字符在字符串位置 )和 input屬性
String.prototype.replace(reg, function): 是將匹配內(nèi)容應(yīng)用函數(shù)后返回一個新字符串。
String.prototype.split(reg): 以指定的分隔符字符串將一個String對象分割成字符串數(shù)組, 如果分隔符是("")則會每個字符都切割。
注意:當字符串為空時,split()返回一個包含一個空字符串的數(shù)組,而不是一個空數(shù)組,如果字符串和分隔符都是空字符串,則返回一個空數(shù)組。
Array.prototype.join()方法: join() 方法將一個數(shù)組(或一個類數(shù)組對象)的所有元素連接成一個字符串并返回這個字符串,不改變原數(shù)組。
參數(shù): 指定一個字符串將數(shù)組的每一個元素以這個字符串拼接,()為空默認為, 當("")是引號時則元素之間沒有任何字符。這個方法常常和String.prototype.split()連用
一些常用的匹配字符預(yù)定義類
字符集 | 等價于 | |
---|---|---|
. | [ ^ 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 | 非單詞邊界 |
const re1 = /d/ 字面量語法 創(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 //正則表達式在前 /w{3,}/g.test(str) //true ....常用用法
常用修飾符
g:global,全文搜索,不添加的話搜索到第一個結(jié)果停止搜索
i:ingore case,忽略大小寫,默認大小寫敏感
m:multiple lines,多行搜索
D 和 S W常用來去除不想要的
D可用來去除不是數(shù)字的的字符
比如: var yourNumber = "phoneNumber15555555555" var number.replace(/D/,"")
S 可用來確保必填字段中字符
var username = " daixixi " var value = /S/.test(username)
各種修飾符時修飾前一個元素出現(xiàn)的次數(shù)
var a = "hello world2hello china".match(/w+/)
.匹配除了換行和回車符之外字符,可以使用[/sS/]匹配所有字符
分組 : 當某一個修飾符對前一個元素進行影響時,若想對一組有作用則使用分組 /(ab)+/ 匹配至少一組連續(xù)的ab
__或__: 使用豎線表示或,/a|b/ 表示匹配a或b(有個笑話就是這個|寫成中文的丨怎么都查不出。。。)
取反 :有限字符集以外的字符 /[^abc]/ 除abc以外字符
__范圍__: 使用[a-z] 表示a到z 之間任意一個
__字符類__:使用[]來構(gòu)建一個簡單的類,/[abc]/ 表示匹配其中任意一個均可
貪婪模式和非貪婪模式: 在設(shè)置了量詞后匹配是默認是貪婪模式會即以最大的量詞進行匹配,不過在量詞后面加上?后就可以取最小量詞進行匹配,是否匹配結(jié)束一般取決于是否加g
"123456789".match(/d{3,5}/g); //["12345", "6789"] "123456789".match(/d{3,5}?/g); //["123", "456", "789"]
分組嵌套:
var str = "前瞻:
表達式 | 含義 |
---|---|
exp1(?=exp2) | 匹配后面是exp2的exp1 |
exp1(?!exp2) | 匹配后面不是exp2的exp1 |
得到是exp1的值,不過需要滿足條件才會被匹配中
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94616.html
摘要:每個構(gòu)造函數(shù)定義了一類對象,表示由構(gòu)造函數(shù)初始化對象的集合。嚴格模式下,明確禁止八進制數(shù)。日期和時間構(gòu)造函數(shù)用來創(chuàng)建表示日期和時間的對象,包含方法。模式匹配函數(shù)是一個構(gòu)造函數(shù),創(chuàng)建正則表達式。布爾值表示兩種狀態(tài),使用保留字和。 《Javascript權(quán)威指南》就是前端工程師口中常說的犀牛書,得名是因為中文翻譯出版的書籍封面是一只犀牛,是學(xué)習(xí)JavaScript的必讀書籍。 JavaSc...
摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個最重要的技術(shù)點常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實現(xiàn)的大排序算法一怪對象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個最重要的技術(shù)點 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...
摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個最重要的技術(shù)點常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實現(xiàn)的大排序算法一怪對象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個最重要的技術(shù)點 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...
閱讀 1552·2023-04-26 02:29
閱讀 3016·2021-10-11 10:58
閱讀 2894·2021-10-08 10:16
閱讀 3155·2021-09-24 09:47
閱讀 1563·2019-08-29 16:56
閱讀 2711·2019-08-29 11:03
閱讀 1992·2019-08-26 13:35
閱讀 3167·2019-08-26 13:34