js正則表達式屬性及方法的使用


正則表達式

直接量語法

/pattern/attributes

創建 RegExp 對象的語法:

new RegExp(pattern, attributes);

五大屬性

 

global:如果設置了new RegExp(‘s’,’g’),g(全局)被設置,所以global為true;

ignoreCase:同上,ignoreCase,對應的是i(大小寫是否敏感);

lastIndex, var reg=/\d/g;

           var r=reg.exec('a1b2c3');

            console.log(reg.lastIndex); //2

            r=reg.exec('a1b2c3');

            console.log(reg.lastIndex); //4

multiline:同上上:multiline對應m(多行匹配)

Source:var str = "Visit W3School.com.cn";

var patt1 = new RegExp("W3S","g");

document.write("The regular expression is: " + patt1.source);// W3S

 

方法

Var reg = /\d/g;//正則表達式

Var str = ‘1c2v3r’;//你需要匹配的內容

RegExp 對象方法

RegExp對象方法就是  reg.fun(str)

 

 

 

Complie, 創建正則對象有兩種方法:字面量和構造函數。compile基本等同於構造方法方式,且已被廢棄。

Exec ,var result = reg.exec(str);它將返回一個數組

 

注釋:只能執行一次,返回的數組就是當前的匹配內容的信息

0,表示需要匹配的內容,index表示匹配的位置,input匹配的內容 ;

 

如果你想把全部的匹配出來:

  

Result:

 

Test: 返回值為true或者false

reg.test(str);

 

String對象方法

Var reg = /\d/;//正則表達式

Var str = ‘1c2v3r’;//你需要匹配的內容

String對象方法  str.fun(reg);與regExp對象方法相反

 

Search,search() 方法不執行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字符串的開始進行檢索,這意味着它總是返回 stringObject 的第一個匹配的位置;它對i是支持的

它的返回值是檢索的位置,若沒有返回-1

Str.search(reg);//0;

Match, 返回數組,該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置,而是檢索出來的內容數組形式展現

 

Result:

注釋:(多個結果的返回,要加g,否知只返回第一個內容,若沒有匹配結果則返回null)

注意:對多個數字的匹配

 

若只是單個

 

 

 

Replace,一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

Replace(reg/str, 替換的內容)

 

如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

 

如果replace方法的第一個參數傳入的是帶分組的正則表達式,我們在第二個參數中可以使

用以下來獲取相應的分組內容

 

 

Result:@#1#@@#2#@@#3#@;

strObj.replace(regObj,function(){})

replace的fun方法

把replace方法的第二個參數傳入一個function,這個function會在每次匹配替換的時候調用,算是個每次替換的回調函數,我們使用了回調函數的第一個參數,也就是匹配內容,其實回調函數一共有四個參數

第一個參數很簡單,是匹配字符串

第二個參數是正則表達式分組內容,沒有分組則沒有該參數

第三個參數是匹配項在字符串中的index

第四個參數則是原字符串

自己嘗試一下輸出結果

Split, 用於把一個字符串分割成字符串數組,返回數組

Str.split(reg/需要分割的標識,取返回數組的長度);其方法類似js數組方法的操作;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM