js正則表達式(1)


定義正則:

var reg = new RegExp('a'); //實例化對象,參數是我們想要制定的規
var reg = /a/;  //簡寫方法

正則的常用方法:

  1、test():在字符串中查找符合正則的內容,查找到返回true,反之返回false

    用法:正則.test(字符串);

    例子:判斷是否是數字

var str = '12345678';
    var reg = /\D/; // \D代表非數字
    if(reg.test(str)){
        alert('不全是數字');
    }else{
        alert('全是數字');
    }

  2、search():在字符串中搜索符合正則的內容,搜索到就返回出現的位置(從0開始,若搜索到的不只是一個字母,則返回第一個字母的位置),反之返回-1

    用法:字符串.search(正則)

var str = 'webrty';
var reg = /B/i;     //i表示不區分大小寫
console.log(str.search(reg));   //返回2

  3、match():在字符串中搜索符合正則的內容,匹配成功就返回內容,格式為數組,失敗則返回null

    用法:字符串.match(正則);   

var str = 'as123msd8xx29shdkdk220nm';
var reg = /\d+/g;   //匹配至少一個數字, g表示全局匹配
console.log(str.match(reg));    // ["123", "8", "29", "220"]

  4、replace():查找符合正則的字符串,替換成對應的字符串,返回替換后的內容

    用法:字符串.replace(正則,新的字符串/回調函數); (在回調函數中,第一個參數是指匹配到的第一個字符) 

    例子:敏感詞過濾

var str = '吃葡萄不吐葡萄皮';
var reg = /葡萄|皮/g;  //匹配葡萄或皮 , 全局匹配
var str2 = str.replace(reg,'*');
console.log(str2);    //吃*不吐**

  想要實現幾個字對應幾個*,可以用回調函數

var str = '吃葡萄不吐葡萄皮';
var reg = /葡萄|皮/g;  //匹配葡萄或皮 , 全局匹配
var str2 = str.replace(reg,function(str){
//str 參數第一次指的是葡萄,第二次指的是葡萄,第三次指的是皮
     var result = '';
     for(var i=0;i<str.length;i++){
          result += '*';
      }
          return result;
 });
  console.log(str2);  //吃**不吐***

 

字符:

^:匹配字符串的開始位置

$:匹配字符串的結束位置

*:匹配前面子表達式任意次數

+:匹配前面子表達式一次或多次

?:匹配前面子表達式0次或多次

. :匹配任何單個字符

{n}:n為非負整數,匹配確定的n次。例如:“o{2}”不能匹配‘bod’中的‘o’ ,但能匹配‘food’中的‘0’

{n,}:至少匹配n次

{n,m}:最少匹配n次,最多匹配m次

x|y:匹配x或y

[xyz]:字符集合。匹配任意一個字符。例如‘[abc]’ 匹配 ‘plain’ 中的 ‘a’

[^xyz]:匹配未包含的任意字符。例如‘[^abc]’ 匹配 ‘plain’ 中的 ‘plin’

\b:匹配單詞邊界。例如‘er\b’ 可以匹配‘nerver’ 中的‘er’ ,但不能匹配 ‘verb’中的‘er’

\B:匹配非單詞邊界

\d:匹配一個數字字符,同[0-9]

\D:匹配一個非數字字符,同[^0-9]

\n:匹配一個換行符

\r:匹配一個回車符

\s:匹配任何不可見字符,如空格

\S:匹配任何可見字符

\w:匹配任何包括下划線的單詞字符

\W:匹配任何非單詞字符

/.../g: 全局匹配

/.../i:  忽略大小寫

 


免責聲明!

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



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