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) 

//我爱*****,***上太阳升

复制代码
相关文章
相关标签/搜索