国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

正則表達式隨筆

spademan / 1538人閱讀

摘要:如果匹配成功,則返回正則表達式在字符串中首次匹配項的索引否則,返回。參數如果傳入一個非正則表達式對象,則會隱式地使用將其轉換為一個參數如果你未提供任何參數,直接使用,那么你會得到一個包含空字符串的。

正則表達式

一直使用簡單的正則表達式,遇到難點的就無法簡潔高效的寫出正則,故此整理一篇需要記憶應用的正則使用。

正則表達式作用

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

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

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

fromCodePoint() 方法:參數提供字符的碼位返回對應的字符

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

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

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

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

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

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

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

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

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

如果傳入一個非正則表達式對象,則會使用 new RegExp(obj) 隱式地將其轉換為正則表達式對象。

str.match(reg)方法: 當一個字符串與一個正則表達式匹配時, match()方法檢索匹配項。

參數:如果傳入一個非正則表達式對象,則會隱式地使用 new RegExp(obj) 將其轉換為一個reg

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

返回值:如果字符串匹配到了表達式,會返回一個數組,數組的第一項是進行匹配完整的字符串,之后的項是用圓括號捕獲的結果。如果沒有匹配到,返回null

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

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

String.prototype.replace(reg, function): 是將匹配內容應用函數后返回一個新字符串。

String.prototype.split(reg): 以指定的分隔符字符串將一個String對象分割成字符串數組, 如果分隔符是("")則會每個字符都切割。

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

Array.prototype.join()方法: join() 方法將一個數組(或一個類數組對象)的所有元素連接成一個字符串并返回這個字符串,不改變原數組。

參數: 指定一個字符串將數組的每一個元素以這個字符串拼接,()為空默認為,("")是引號時則元素之間沒有任何字符。這個方法常常和String.prototype.split()連用

一些常用的匹配字符

預定義類

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

量詞

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

邊界字符集

字符 含義
^ 以 xxx開頭
$ 以 xxx結尾
 單詞邊界
B 非單詞邊界
正則語法 構造方式

const re1 = /d/ 字面量語法 創建

const re2 = new RegExp(d) 構造函數 創建

使用正則搜索
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,全文搜索,不添加的話搜索到第一個結果停止搜索
i:ingore case,忽略大小寫,默認大小寫敏感
m:multiple lines,多行搜索

D 和 S W常用來去除不想要的

D可用來去除不是數字的的字符

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

S 可用來確保必填字段中字符

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

各種修飾符時修飾前一個元素出現的次數

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

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

分組 : 當某一個修飾符對前一個元素進行影響時,若想對一組有作用則使用分組 /(ab)+/ 匹配至少一組連續的ab

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

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

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

__字符類__:使用[]來構建一個簡單的類,/[abc]/ 表示匹配其中任意一個均可

貪婪模式和非貪婪模式: 在設置了量詞后匹配是默認是貪婪模式會即以最大的量詞進行匹配,不過在量詞后面加上?后就可以取最小量詞進行匹配,是否匹配結束一般取決于是否加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的值,不過需要滿足條件才會被匹配中

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94616.html

相關文章

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

    摘要:每個構造函數定義了一類對象,表示由構造函數初始化對象的集合。嚴格模式下,明確禁止八進制數。日期和時間構造函數用來創建表示日期和時間的對象,包含方法。模式匹配函數是一個構造函數,創建正則表達式。布爾值表示兩種狀態,使用保留字和。 《Javascript權威指南》就是前端工程師口中常說的犀牛書,得名是因為中文翻譯出版的書籍封面是一只犀牛,是學習JavaScript的必讀書籍。 JavaSc...

    SwordFly 評論0 收藏0
  • 前端文檔收集

    摘要:系列種優化頁面加載速度的方法隨筆分類中個最重要的技術點常用整理網頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數組函數數據訪問性能優化方案實現的大排序算法一怪對象常用方法函數收集數組的操作面向對象和原型繼承中關鍵詞的優雅解釋淺談系列 H5系列 10種優化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個最重要的技術點 常用meta整理 網頁性能管理詳解 HTML5 ...

    jsbintask 評論0 收藏0
  • 前端文檔收集

    摘要:系列種優化頁面加載速度的方法隨筆分類中個最重要的技術點常用整理網頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數組函數數據訪問性能優化方案實現的大排序算法一怪對象常用方法函數收集數組的操作面向對象和原型繼承中關鍵詞的優雅解釋淺談系列 H5系列 10種優化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個最重要的技術點 常用meta整理 網頁性能管理詳解 HTML5 ...

    muddyway 評論0 收藏0
  • 項目隨筆

    摘要:在中請求服務器數據,并將結果,也可以在結果中再添加一些數據再,這樣,在中就可以用來獲取這些結果了。當語句里面沒有表達式,只是某個值時如它會自動執行操作,即 1.render中最好不要放處理數據的邏輯,不能改變props,state的值,不然render后又得render一次,造成多次render),render中不要用localStorate,和sessionStorage(這算是操作...

    everfly 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<