js 形象化理解正則表達式

1、正則表達式

1.一、 本身對正則表達式的認識

字面意思理解正則表達式

  • (有規則的表達式)(regular Expression)(regex)(RE)

我的理解數組

  • 字符串————(比喻成一堆剛收好的稻穀)
  • 字符串的方法 match等 ————(比喻成篩選工具)
  • 正則表達式————(比喻成這這個篩選工具的孔的大小)
  • 獲得的結果————(就是已經篩選過的稻穀)
  • 稻穀篩選的合不合格,取決於工具的孔是否合適,孔過大就會把渣子篩進去了,孔過小又會篩不出稻穀來。

2、如何使用正則表達式

  • 第一步:先準備一堆未通過篩選的稻穀 ————定義字符串並初始化
var str = '(:match_product_num-1)*30'
複製代碼
  • 第二步:想要獲得什麼樣品質的稻穀———— 想要獲得一個表達式(match_product_num-1)*30
  • 第三步:準備好使用的工具並分析選擇怎樣合適的孔去篩選————選擇工具
    • 思考一:怎樣將孔安裝到篩子上面?
    • 思考二:使用這些工具篩選事後的結果究竟是什麼?僅僅是一堆除去渣滓的稻穀,仍是已經將大米已經去殼篩選出來了?

工具表明 test()、search()、replace()、match()、split()bash

2.一、工具介紹

test()函數

正則表達式.test(str)工具

  • 功能:在字符串中查找符合正則的內容,
  • 返回結果:true——找到符合正則的內容
  • 返回結果:false——沒有找到符合正則的內容

根據返回結果能夠利用test()方法來作爲判斷條件ui

var str = '374829348791';
var re = /\D/; // \D表明非數字
if ( re.test(str) ) { 
    // 返回true,表明在字符串中找到了非數字。
    console.log('不全是數字');
} else {
    console.log('全是數字');
}
複製代碼

search()spa

字符串.search(正則表達式)3d

  • 功能:在字符串中查找符合正則的內容,
  • 返回結果:返回出現的位置(從0開始,若是匹配的不僅是一個字母,那隻會返回第一個字母的位置)
  • 返回結果:-1 ——搜索失敗

根據返回結果能夠利用search()方法來查找某一個字符在字符串中的位置code

var str = 'abcdef';
// i——ignore(正則中默認是區分大小寫的 
// 若是不區分大小寫的話,在正則的最後加標識 i )
var re = /B/i;
console.log( str.search(re) );

複製代碼

match()字符串

字符串.match(正則表達式)

  • 功能:在字符串中查找符合正則的內容,
  • 返回結果:數組——搜索成功返回搜索的內容
  • 返回結果:null ——搜索失敗

例子:在下列字符串中找出指定格式的全部數字,以下找到 123,54,33,879

var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g; 
var result = str.match(re) 
console.log (result) 

// [123,54,33,879]

複製代碼

replace()

字符串.replace(正則表達式,新的字符串/回調函數)

  • 功能:查找符合正則的字符串,就替換成對應的字符串
  • 返回結果:新的數組
  • 在回調函數中,第一個參數指的是每次匹配成功的字符

例子:敏感詞過濾,好比 我愛北京天安門,天安門上太陽升。------我愛*****,***上太陽升。 即北京和天安門變成號,

var str = "我愛北京天安門,天安門上太陽升。";
var re = /北京|天安門/g; 
var str2 = str.replace(re,'*'); 
console.log (str2)

//我愛**,*上太陽升 

複製代碼

顯然上面不符合要求

var str = "我愛北京天安門,天安門上太陽升。";
var re = /北京|天安門/g; 
var str2 = str.replace(re,function(str){
    console.log(str); // 北京  天安門  天安門
    var result = '';
    for(var i=0;i<str.length;i++){
        result += '*';
    } 
    return result; //因此搜索到了幾個字就返回幾個* 
});
console.log (str2) 

//我愛*****,***上太陽升

複製代碼
相關文章
相關標籤/搜索