最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js正則表達式學習筆記

 更新時間:2015年12月08日 14:59:04   作者:半夢半醒。  
這篇文章為大家分享了一份很詳細的js正則表達式學習筆記,包括了理論知識和實例講解,結合實例對js正則表達式進行了學習,感興趣的小伙伴們可以參考一下

正則表達式:對字符串中的信息實現(xiàn)查找、替換和提取操作。(不支持注釋和空白,必須寫在一行內(nèi))
正則表達式的創(chuàng)建:包含在一對斜杠之間的字符(直接量語法)
例如:

var pattern = /s$/;  // 創(chuàng)建一個正則來匹配所有以字母s結尾的字符串,并賦值給pattern

一 、字符類
將直接量字符單獨放進方括號內(nèi)就組成了字符類。
一個字符類可以匹配它所包含的任意字符。
正則表達式的字符類:
[...]      方括號內(nèi)的任意字符
[^...]    不在方括號內(nèi)的任意字符
.           除換行符和其他Unicode行終止符之外的任意字符
\w        任何ASCII字符組成的單詞 等價于[a-zA-Z0-9]
\W        任何非ASCII字符組成的單詞 等價于[^a-zA-Z0-9]
\s         任何Unicode空白符
\S        任何非Unicode空白符
\d        任何ASCII數(shù)字 等價于[0-9]
\D        任何非ASCII數(shù)字 等價于[^0-9]
[\b]      退格直接量(特例)
例如:/[a,b,c]/       表示和字母a,b,c中的任意一個都匹配
   /[\s\d]/        表示匹配任意空白字符或者數(shù)字

二、重復
用以表示指定字符重復的標記
正則表達式的重復字符語法:
{n,m}      匹配前一項至少n次,但不超過m次
{n,}     匹配前一項n次或者更多次
{n}      匹配前一項n次
?       匹配前一項0次或者1次,也就是前一項是可選的,等價于{0,1}
+         匹配前一項1次或多次,等價于{1,}
*          匹配前一項0次或多次,等價于{0,}

例如:/\d{2,4}/     匹配2~4個數(shù)字
   /\w{3}\d/    精確匹配3個單詞和一個可選數(shù)字

三、選擇、分組和引用
匹配程序:從左到右,如果左邊的匹配項匹配了,就自動忽略右邊的匹配項(即使可以產(chǎn)生更好的匹配)
①     |    用于分隔供選擇的字符
   例如: /ab|cd|ef/      可以匹配字符串“ab”,"cd"或者“ef”
       /\d{3}|[a-z]{4}/       匹配3位數(shù)字或四個小寫字母
②  ()
作用一:把單獨項合成子表達式
作用二:在完整的模式中定義子模式
    當一個正則表達式成功的和目標字符串相匹配時,可以從目標字符串中抽出和圓括號中的子模式相匹配的部分。
    例如:
    /[a-z]+\d+/   檢索一個或多個小寫字母后邊跟著一個或多個數(shù)字
    如果我們關心的是每個尾部的數(shù)字,則可以把模式的數(shù)字部分放到括號(/[a-z]+(\d)/),這樣就可以從檢索到的匹配中抽取數(shù)字了
作用三:允許在同一正則表達式的后部引入前面的子表達式
    實現(xiàn)方法:在字符\后加一位或多位數(shù)字(這個數(shù)字指定了帶圓括號的子表達式在正則表達式中的位置)
    例如:\1    引用的是第一個帶圓括號的子表達式
    注: 位置以參與計數(shù)的左括號位置為準;
    正則表達式不允許用雙引號括起的內(nèi)容中有單引號,反之亦然。
總結:
|       選擇,匹配的是該字符左邊的子表達式或右邊的子表達式
(...)      組合,將幾個項組合成一個單元
(...?)    只組合,把項組合到一個單元,但不記憶與該組相匹配的字符
\n        和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式,組索引是從左到右的左括號數(shù),(?: 這個形式的分組不參與索引編碼
四、指定匹配的位置:
錨 :
指定匹配發(fā)生的合法位置
^    匹配字符串的開頭
$    匹配字符串的結尾
\b   匹配一個單詞的邊界 (位于\w和\W之間的位置)
\B   匹配非單詞邊界的位置

五、修飾符

修飾符是放在//之外的,不會出現(xiàn)在兩條/線之間
i 不區(qū)分大小寫
g 全局匹配,找到所有匹配,而不是找到第一個之后就停止
m 多行匹配

六、 用于模式匹配的String對象的方法
方法一: search() 檢索與之匹配的位置
參數(shù):一個正則表達式
返回:第一個與之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
例如:

<script>
 "javascript".search(/script/i);  //返回值為4  
</script>

注:① 如果search()的參數(shù)不是正則表達式,則會通過RegExp構造函數(shù)將他轉換成正則表達式
      ② search()不支持全局檢索
方法二: replace() 執(zhí)行檢索與替換操作
參數(shù):第一個-->正則表達式
   第二個-->要進行替換的字符串(也可是一個函數(shù),該函數(shù)能動態(tài)的計算替換字符串)
注:① 支持g,
    正則表達式中設置了g:所有與模式匹配的子串都將替換成第二個參數(shù)指定的字符串
      正則表達式中沒設置g:只替換所匹配的第一個子串
 ?、?如果第一個參數(shù)不是正則,而是一個字符串時,replace()將直接搜索這個字符串

例如:將所有不區(qū)分大小寫的javascript都替換成大小寫正確的JavaScript

<script>
 var str = "javascript,javascript,javascript,javaScript";
 alert(str.replace(/javascript/gi,"JavaScript"));  //JavaScript,JavaScript,JavaScript,JavaScript
</script>

方法三 : match()
參數(shù):正則表達式
返回:由匹配結果組成的數(shù)組
支持g
實例一:

<script>
 var math = "1 plus 2 equals 3".match(/\d+/g);
 console.log(math);  // ["1", "2", "3"]
 console.log(typeof math);  //object
</script>  

實例二:

<script>
 var math = "1 plus 2 equals 3".match(/\d/);
 console.log(math);  // ["1", index: 0, input: "1 plus 2 equals 3"]
 console.log(typeof math);  //object
</script>

注意:
給字符串的math()傳入一個非全局的正則表達式:
匹配情況:只檢索第一個匹配
返回值:數(shù)組
    數(shù)組第一個元素:所匹配的字符串
    數(shù)組第二個元素:正則表達式中用圓括號括起來的子表達式,返回的數(shù)組有兩個屬性-->index和input

方法四: split()
返回值:數(shù)組
分隔符:split()的參數(shù)
例如:

<script>
 var str= "1,2,3,4,5,6,7,8".split(',');
 console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>

參數(shù)是正則表達式時(可以指定分隔符,允許兩邊可以留任意多的空白符)
返回:用以調(diào)用它的字符串拆分為一個子字符串組成的數(shù)組

<script>
 var str= "1,2,3,4,5,6,7,8".split(/\s*,\s*/);  //允許兩邊留任意多的空白符
 console.log(str);  //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>

七、RegExp 對象

RegExp()構造函數(shù):
參數(shù):兩個字符串參數(shù)
第一個:正則表達式的主體部分(兩個斜杠之間的文本)
第二個:(可選)指定正則表達式的修飾符(g,i,m這三者或這三者的組合)
注意:無論是字符串直接量還是正則表達式都使用/字符作為轉譯字符的前綴
例如:

var zipCode = new RegExp('\\d{5}','g'); //全局匹配字符串中的5個數(shù)字,注意這里是//而不是/

以上就是為大家整理的關于js正則表達式學習筆記,希望對大家學習js正則表達式有所幫助。

相關文章

  • javascript中使用正則表達式進行字符串驗證示例

    javascript中使用正則表達式進行字符串驗證示例

    我寫的一個表達式驗證示例:功能如下:用戶名,不能為空;密碼6為數(shù)字;密碼確認,兩次輸入密碼必須相同;身份證號碼必須是15位,或者是18位,最末尾也可以是X
    2013-05-05
  • 正則表達式學習經(jīng)驗分析

    正則表達式學習經(jīng)驗分析

    正則表達式用來指定字符串模式。當你需要定位匹配某種模式的字符串時就可以使用正則表達式。例如,我們下面的一個例程就是在一個HTML文件中通過查找字符串模式<a href="...">來定位所有的超鏈接。
    2008-05-05
  • js正則表達式常用函數(shù)詳解(續(xù))

    js正則表達式常用函數(shù)詳解(續(xù))

    之前一篇已經(jīng)帶領大家認識了一下正則表達式常用函數(shù)最基本的功能及使用方法。本文再帶領大家一起應用正則表達式,深入學習正則表達式中常用的方法及對象,例如:test、exec、match、replace、search等等,需要的朋友可以參考下
    2015-12-12
  • Python正則表達式匹配字符串中的數(shù)字

    Python正則表達式匹配字符串中的數(shù)字

    這篇文章主要介紹了Python正則表達式匹配字符串中的數(shù)字,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • shell腳本之正則表達式、grep、sed、awk

    shell腳本之正則表達式、grep、sed、awk

    這篇文章主要介紹了shell腳本之正則表達式、grep、sed、awk的相關知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-04-04
  • 如何使用正則匹配最后一個字符串詳解

    如何使用正則匹配最后一個字符串詳解

    這篇文章主要給大家介紹了關于如何使用正則匹配最后一個字符串的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • windows與linux 路徑正則寫法

    windows與linux 路徑正則寫法

    windows與linux 路徑正則寫法,一般可以用來區(qū)分路徑。
    2009-11-11
  • javascript RegExp 對象屬性與方法和應用

    javascript RegExp 對象屬性與方法和應用

    RegExp對象(至今為止我看到過的最通俗易懂和深入的正則表達式教程)。
    2009-10-10
  • JavaScript  正則表達式備忘單實例代碼

    JavaScript 正則表達式備忘單實例代碼

    正則表達式或“regex”用于匹配字符串的各個部分,下面是我創(chuàng)建正則表達式的備忘單,需要的朋友可以參考下
    2019-04-04
  • JavaScript正則表達式驗證身份證號碼是否合法(兩種方法)

    JavaScript正則表達式驗證身份證號碼是否合法(兩種方法)

    正則表達式(regular expression)是一個描述字符模式的對象。下面通過本篇文章給大家介紹js正則表達式驗證身份證號碼是否合法,需要的朋友可以參考下本篇文章
    2015-09-09

最新評論

新巴尔虎左旗| 南江县| 宜宾市| 鄂托克旗| 鄄城县| 射阳县| 靖宇县| 深水埗区| 九龙坡区| 汉沽区| 南漳县| 昌平区| 丘北县| 清苑县| 汝阳县| 丰都县| 武胜县| 定安县| 黄冈市| 泰兴市| 南丰县| 营山县| 正宁县| 金昌市| 奉贤区| 德兴市| 永康市| 岐山县| 梧州市| 甘南县| 库尔勒市| 天等县| 乌海市| 巴林右旗| 肇庆市| 扶风县| 洪湖市| 阳朔县| 五常市| 黄平县| 澳门|