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

資訊專欄INFORMATION COLUMN

正則表達式之初入江湖

caige / 1690人閱讀

摘要:拿舉例子只想說明你總會在一些陰暗的角落遇到正則表達式,為了到時候不至于一頭霧水,我們最好簡單的了解一下正則表達式的使用。

為什么要學正則表達式
很多人對正則表達式的認知只是在進行表單驗證的時候在網上搜一段正則表達式進行copy,實際工作上好像很難遇到大段的正則表達式
我第一次看到大量的正則使用是在jQuery源碼中,當時看的頭疼只好草草的看下大概思路不了了之,但是到今天我依然不認為這種做法是錯誤的,jQuery早期為了兼容性代碼很多地方太臟,不如在網上搜搜源碼架構。拿jQuery舉例子只想說明你總會在一些陰暗的角落遇到正則表達式,為了到時候不至于一頭霧水,我們最好簡單的了解一下正則表達式的使用。
看完本文你不會稱為正則專家,實際你也不需要精通正則,能看懂別人寫的正則和能寫一些簡單的正則即可
之前在網上搜過一些文章,感覺寫的都不太好把我的耐心都磨沒了所以我決定寫一篇符合“人”學習直覺的文章
創建正則表達式
在JavaScript中與大多數其他對象類型一樣,有兩種方法可以創建正則表達式比如我們要匹配一個"test"字符串

通過正則表達式字面量

var pattern = /test/;

通過構造RegExp實例

var pattern = new RegExp("test");
前者直接在//中寫匹配規則就Ok了,后者需要調用RegExt構造方法,并把匹配規則用""包起來,很明顯第一種更加清晰,反正我每次都記不住"RegExp",每次用都要現查,所以我們接下來用第一種就好了(RegExp有它的好處但是目前不需要知道)
現在你一定想知道/test/表達的是什么意思?
這種一個接一個的字符,隱式的表達了"followed by"這樣一個操作也就是一個挨著一個

"t"后面跟著"e"

"e"后面跟著"s"

"s"后面跟著"t"

正則表達式的威力僅此而已嗎?如果只是這樣就太讓人失望了,因為完全可以使用indexOf進行判斷
接下來我們額外學習三個英文字母,在正則中他們有各自的含義

i 讓正則表達式不分大小寫 /test/i 表示不僅可以匹配"test"還可以匹配"TeSt"

g 全局匹配 默認情況正則只匹配第一次出現的結果比如"testkdgyitest" 找到第一個"test"就算完成工作了,而g可以找到所有符合條件的匹配值

m 允許匹配多個行比如匹配textarea中的值

請記住這些字母跟在//后面 如/test/i
接下來讓我們做個小練習,有如下字符串,將字符串中的test(不區分大小學)替換成“啊哈正則” 提示:js替換字符串常用replace方法并且replace第一個參數接收正則表達式
var str =  "sjufhsufhTesT";//將test(不論大小寫)替換成“啊哈正則”
答案:
var str =  "sjufhsufhTesT";
var pattern = /test/i;
var newStr = str.replace(pattern, "啊哈正則");
前面說了默認情況正則只匹配第一次出現的結果,我們來測試一下
var str =  "testsjufhsufhTesT";
var pattern = /test/i;
var newStr = str.replace(pattern, "啊哈正則");// 結果如下"啊哈正則sjufhsufhTesT"
我們加上g試試
var str =  "testsjufhsufhTesT";
var pattern = /test/ig;
var newStr = str.replace(pattern, "啊哈正則");// 結果如下"啊哈正則sjufhsufh啊哈正則"
匹配一類字符
有時候我們想更靈活一些,不想只匹配某個特定的字符串,而是想匹配集合中的某一個字符,比如我們只想匹配“a” “b” “c”中任何一個字符 我們可以這么寫[abc]
[]中可以指定一個集合比如[abc],那么如果想指定一個從a到z的集合,難道我們把26個英文字母一個一個寫一遍嗎?當然不需要!我們可以在[]中指定范圍[a-z]
沒懂?看下面的例子就好了
var str1 = "ak恩ebc";
var pattern1 = /[abc]/;
var newStr1 = str1.replace(pattern1,"雅兒");
console.log(newStr1);//雅兒k恩ebc
我們看到我們想要abc之中的任何一個字符,即使中間隔著其他字符也沒關系,但是默認情況是如果找到了a就停止往下繼續匹配b和c了,如果沒匹配到a,那么將匹配b,以此類推

如果想全部匹配請加上在//后加上"g"
現在有個新需求,匹配除abc之外的字符,我們怎么辦呢?可以在集合中插入一個"^" 1
"^" 表示除...之外
var str2 = "ak恩ebc";
var pattern2 = /[^abc]/g;
var newStr2 = str2.replace(pattern2,"雅兒")
console.log(newStr2);//a雅兒雅兒雅兒bc
各位看客看到這里想必也累了,余下的內容以后再說。先把這次的內容復習一下

正則表達式的兩種創建方式

i g m 三個字母代表的特殊含義 i表示不區分大小寫 g表示全局匹配 m表示允許匹配多個行 (別忘了寫在//后 如/test/i)

可以用[]匹配集合中的某個字符串

可以^實現反選,表示除...之外

最后推薦一個正則可視化工具,可以在上面練習正則,通過可視化的方式更輕松的理解

https://regex101.com/

  • abc ?

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

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

    相關文章

    • HTML & CSS之小白初入江湖

      摘要:之小白初入江湖超文本標記語言簡稱是一種用于創建網頁的標準標記語言。描述了一個網站的結構語義隨著線索的呈現,使之成為一種標記語言而非編程語言。是塊級元素,是行內元素。層疊樣式表簡稱是一種用來為結構化文檔如添加樣式的工具。 HTML & CSS之小白初入江湖 1. HTML 超文本標記語言(HyperText Markup Language, 簡稱HTML)是一種用于創建網頁的標準標記語言...

      fai1017 評論0 收藏0
    • HTML & CSS之小白初入江湖

      摘要:之小白初入江湖超文本標記語言簡稱是一種用于創建網頁的標準標記語言。描述了一個網站的結構語義隨著線索的呈現,使之成為一種標記語言而非編程語言。是塊級元素,是行內元素。層疊樣式表簡稱是一種用來為結構化文檔如添加樣式的工具。 HTML & CSS之小白初入江湖 1. HTML 超文本標記語言(HyperText Markup Language, 簡稱HTML)是一種用于創建網頁的標準標記語言...

      crossoverJie 評論0 收藏0
    • 軟件測試江湖(三)心得技巧篇

      摘要:軟件測試江湖也是江湖,也有一些小技巧。以上是在過往測試江湖中個人總結的三條小技巧,技巧雖小,但是可以幫助初入測試江湖的小白少走一些彎路,讓個人的職業發展更加順利。 有人的地方就有江湖,有江湖的地方就有恩怨。有的恩怨避無可避,有的本可以避免,只是因為年輕不懂事,不懂得江湖的規矩,惹下許多的是非。軟件測試江湖也是江湖,也有一些小技巧。 1)Bug記錄技巧showImg(https://se...

      JackJiang 評論0 收藏0
    • 軟件測試江湖(三)心得技巧篇

      摘要:軟件測試江湖也是江湖,也有一些小技巧。以上是在過往測試江湖中個人總結的三條小技巧,技巧雖小,但是可以幫助初入測試江湖的小白少走一些彎路,讓個人的職業發展更加順利。 有人的地方就有江湖,有江湖的地方就有恩怨。有的恩怨避無可避,有的本可以避免,只是因為年輕不懂事,不懂得江湖的規矩,惹下許多的是非。軟件測試江湖也是江湖,也有一些小技巧。 1)Bug記錄技巧showImg(https://se...

      AndroidTraveler 評論0 收藏0

    發表評論

    0條評論

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