正则表达式

正则表达式: 是对字符串操作的一种逻辑公式,就是用事先定义好的一些字符,及这些特定字符的组合,组成一个‘规则字符串’,这个规则字符串用来表达对字符串的一种过滤逻辑,简单地说就是规定文本检索的内容,通常用来检索、替换文本。

1. 创建正则表达式

正则对象RegExp,又称为正则表达式;
创建方式:

  • 构造函数创建;
    new RegExp(检测内容,修饰符) 
    var reg1 = new RegExp(/\d/.);
    console.log(reg1);
    
  • 字面量创建;
    var reg2 = /\d/;
    console.log(reg2);
    

2. 修饰符

g: global 进行一个全局的匹配;
i: ignore case 进行一个不区分大小写的匹配;

var str = "fd1t4fsf6fds8fds5fs";
console.log(str.replace(/\d/, "-"));//一次换一个
console.log(str.replace(/\d/g, "-"));//全局替换

var str1 = "hello world --- hello World";
console.log(str1.replace(/world/g, "javascript"));
console.log(str1.replace(/world/ig, "javascript")); //不区分大小写匹配

3. 正则检索方法

1. 正则提供的检索方法

  • test:检索字符串中是否包含正则要检索的内容,有则返回true,没有返回false;
    var str = "sfdf4fd";
    var reg = /\d/;//数字
    console.log(reg.test(str));
    
  • exec:进行具体检索,检索到正则规定的内容返回一个数组,找不到返回null;
var str1 = "sfdf4fd5";
var reg1 = /\d/;
console.log(reg1.exec(str1));-->["4", index: 4, input: "sfdf4fd5", groups: undefined]

2. 字符串的方法操作正则表达式

  1. replace:替换正则匹配的字符串
    var s = "web ui";
    var reg = /ui/;
    console.log(s.replace(reg,"JavaScript"));--> web JavaScript;
    
  2. split:按正则匹配的内容拆分数组
    var str = "fd1t4fsf6fds8fds5fs";
        console.log(str.split(/\d/)); -->["fd", "t", "fsf", "fds", "fds", "fs"]
    
  3. match:返回正则匹配到内容,跟exec方法一样
    var arr = str.match(/\d/g);
    console.log(arr); -->["1", "4", "6", "8", "5"]
    
  4. search:找一个字符串在另一个字符串中首次出现的位置,有返回对应的下标,没有返回-1
    console.log(str.search(/\d/)); -->2
    

4. 正则对象字符

  • 单个字符和数字

    元字符/元符号匹配情况
    .匹配除换行符以外任意字符
    []匹配括号中的字符集中的任意元素
    [^]匹配除字符集中任意一位字符
    \d匹配数字
    \D匹配非数字
    \w匹配数字、字母、下划线(_)
    \W匹配非数字、字母、下划线 (_)
    \s匹配空白字符、空格、制表符和换行符
    \S匹配非空白字符
  • 锚字符

    元字符/元符号匹配情况
    ^行首匹配
    $行尾匹配
  • 重复字符

    元字符/元符号匹配情况
    x?匹配0个或者1个x
    x*匹配0次或者任意多个x
    x+匹配至少一个x
    (xyz)+匹配至少一个(xyz)
    a{n,m}匹配最少m个、最多n个x
  • 其他字符

    元字符/元符号匹配情况
    (string)用于反向引用的分组
    |
    \1或$1匹配第一个分组中的内容
    \2或$2匹配第二个分组中的内容
    \3或$3匹配第三个分组中的内容
    ?:非获取匹配
    ?=正向肯定预查(匹配到的元素后边必须跟什么)
    ?!正向f否定预查(匹配的字符后面不能跟什么)
    ?<=反向肯定预查
    ?<!反向否定预查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值