正則-RegExp

正則-RegExpspa

  正則,是一條規則,用於檢驗字符串格式,目標就是字符串;regexp

  只要是表單提交的數據都是字符串對象

  定義:索引

    1,var reg=/格式/字符串

    2,var reg=new regexp()console

  方法:ast

    兩大功能---匹配,test()  成功就是true,反之false;test

         捕獲,exec()  成功就會拿出來,沒有就是null;表單

  修飾符:引用

    i  忽略大小寫

    g  全局匹配

    m  多行匹配

  如何使用修飾符:

    1,var reg=/hello/gi    字面量方式

    2,var reg=new regexp(「hello」g)    實例方式

  正則的方括號:

    [abc]  表明查找方括號中的任何字符

    [^abc]  表明查找不在方括號中的字符

    [0-9]  表明查找0-9之間的數字

    [a-z]  表明查找小寫a到小寫z之間

    [A-Z]  表明查找大寫A到大寫Z之間

    [A-z]  表明查找大寫Z到小寫z之間

    (red|blue|black)  查找任何指定的選項

  正則的元字符:

    .  表明單個字符(任意字符,數字字母下劃線空格等)

    \w  表明單詞字符(數字字母下劃線)

    \W  表明非單詞字符

    \d  表明數字

    \D  表明非數字

    \s  表明空白字符

    \S  表明非空白字符

    \b  表明單詞邊界

    \B  表明非單詞邊界

  正則的量詞:

    n+       表明至少一個n的字符

    n*         表明0個或多個n(添加相鄰元素)

    n?         表明0個或一個n(添加相鄰元素,0個或一個所有拿走)

    n{x}        包含x個n

    n{x,}       包含至少x個n

    n{x,y}     包含大於等於x,小於等於y個n

    n$      以n結尾

    ^n      以n開頭

    ?=n     指定字符後面緊跟

字符串方法:(跟正則有關的)

  1,match()查找一個或多個和正則相匹配的,有就返回的是查找的結果,沒有就null

  2,search()匹配和正則相同的字符,有就返回索引,沒有就-1

  3,replace()匹配和正則相同的幷替換掉,返回的是換以後的

正則的理解:

  1,貪婪性:

    每一次匹配都是按最長的出結果,這種功能叫正則的貪婪性

  2,懶惰性:

    每一次在exec()中捕獲的時候,只捕獲第一次匹配的內容,而再也不往下捕獲了,這個叫正則的懶惰性;每一次捕獲的位置都是從0開始

如何解決正則的懶惰性?修飾符g

正則的實例對象reg上有一個lastindex屬性,他是正則捕獲的起始位置

如何解決正則的貪婪性?在元字符量詞後面加問號

分組捕獲:

  正則帶(),數分組個數的時候從左往右

  var reg=/(a)(b)/

  至關於大正則裏面帶了兩個小正則  第一組(a)第二組(b)

  分組捕獲做用

    1,改變優先級  2,分組引用  \1  \2

    \1  表明和第一個分組出現如出一轍的內容

    \2  表明和第二個分組出現如出一轍的內容

    var reg=/(\w)\1(\w)\2/

    var st="ssdd"

    var s=reg.test(st)

    console.log(s)    //true

    正則reg中的規則第一個是一個分組;且是一個單詞字符

            第二個是一個分組引用;要求和第一組如出一轍

  分組捕獲:

    前提是正則存在分組,不只把大正則內容捕獲到,把小正則內容也捕獲到

  如何解除分組捕獲

    在這個分組前面加問號冒號?:

相關文章
相關標籤/搜索