正则表达式及相关方法分享

153 阅读2分钟

正则表达式:规则表达式

字符串的一种匹配模式 ,通过某种规则来查找对应的字符串的值;

  • 1、字面量的创建

//var reg = /要匹配的字符/;

// test : 是用于检测字符是否符合正则的规则 ,如果如何就返还true 否则就返还false;正则方法

var str = "qeqreqwrfdsafdb";
var reg = /eq/;
var res =  reg.test(str);
console.log(res);
  • 2.通过内置构造函数
var str = "fdafdjl";
var reg = new RegExp("a");  //需要加引号 
console.log( reg.test(str));
  • 3.正则表达式的类型 ; 是一个复杂的数据类型 ;

元字符 :在正则里有特殊含义的字符

1. "." : 可以匹配所有非换行的字符
2.转义字符 \
3.匹配空格 \s
4.匹配非空格 \S
5.匹配数字 \d
6.匹配非数字  \D
7 匹配: 数字 字母 下划线  \w
8 匹配 非 数字 字母 下划线  \W

限定符 : 限制 匹配字符出现的次数

1.* 字符可以出现 0次到多次
2. ? 出现 0次或者13. + 字符出现1次到多次 
4. 出现指定的次数 {n};
5. 指定 n次到m次 
6.指定  n次 到 多次之间  {n,}

边界符

1.以什么字符作为开头  ^
2.以什么作为结尾 $
3.以什么作为边界\b 边界符 : 边界定义(\W:非数字 字母 下划线的内容);

特殊符号

1.分组  ();
console.log( RegExp.$1);  // 可以获取符合匹配规则的第一个分组()里匹配到的内容
console.log( RegExp.$2); // 可以获取符合匹配规则的第二个分组()里匹配到的内容
2.集合  []; 代表一个字符 
 - 1.集合里 自带或者关系  ,在正则里的或者是 "|"
 - 2.集合里的  ^  非的意思
 - 3.集合里的 “-” 从哪里到哪里  [a-z] [A-Z] [0-9]
3.修饰符
- g 全局匹配
- i 忽略大小写

和正则相关的方法

正则方法

1.test 正则方法 2.exec 捕获 g 是全局匹配的修饰符

字符串方法 : 字符串下面的方法

  1. match : 获取符合正则规则的内容 (全局和非全局匹配有区别 )
  2. replace : 替换符合规则的字符
    var str = "abcchinaedfdsasexfsab";
    // var reg = /\d+/g;
    var reg = /(china)|(sex)/g;
    var  res = str.replace(reg,function(arg){
        console.log(arg);
        var str = "";
        for(var i=0;i<arg.length;i++){
            str += "*"
        }
        return str;//回调replace
    })
   console.log(res);//*****edfdsa***fsab

3.search : 会返还符合正则规则的索引值,如果没有符合条件的就返还-1 4.split:根据指定字符 把字符串切割成数组

var str = "fdsaf123fdaf2342fdas2342fdad";
var reg = /\d+/;
var arr =  str.split(reg);
console.log(arr);//(4) ["fdsaf", "fdaf", "fdas", "fdad"]