前端学习笔记

js中正则表达式的常用方法

2018-02-05  本文已影响4人  cyuamber

前言
工作中发现,正则表达式实在是很重要,对于FEer来说,正则表达式的使用代表了一个人的基本功。之前每次用每次查,搞得很混乱,现在查了一些资料,对js中常用的正则用法做了一定程度的总结。

JS中正则表达式的常见用法
  1. test():
    在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
    用法::正则.test(字符串)
var str = '374829348791';
var re = /\D/;      //  \D代表非数字,采用非全局匹配
if( re.test(str) ){   // 返回true,代表在字符串中找到了非数字,搜索停止
     console.log('不全是数字');
}else{
    console.log('全是数字');
}
  1. search():
    在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1
    用法::字符串.search(正则)
var str = 'abcdef';
var re = /B/i;
//var re = new RegExp('B','i'); 也可以这样写
 console.log( str.search(re) ); // 1
  1. match():
    在字符串中搜索符合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
    用法::字符串.match(正则)
var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g;   // 每次匹配至少一个数字,且全局匹配。如果不是全局匹配,当找到数字123,它就会停止了,只会弹出123。
 console.log( str.match(re) );   // [123,54,33,879]
  1. 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){
            //用来测试:函数的第一个参数代表每次搜索到的符合正则的字符,所以第一次str指的是北京 第二次str是天   安门 第三次str是天安门
            var result = '';
            for(var i=0;i<str.length;i++){
                result += '*’;   //搜索到了几个字就返回几个*
            }              
            return result; 
        });
            console.log(str2)  //我爱*****,***上太阳升 
上一篇下一篇

猜你喜欢

热点阅读