正则表达式简单介绍

一:创建正则对象:

var reg = new RegExp('条件','igm')

var reg = new RegExp('xyz', 'igm');
var reg = /xyz/igm

二:转义字符:

特殊字符:

  1. \n -> 换行
  2. \r -> 回车
  3. \t -> 制表符

转义符:

  1. i ignore case 忽略大小写
  2. g global 全局匹配
  3. m multi-line 多行匹配

元字符:

  1. \w [0-9A-z_]
  2. \W [^\w]
  3. \d [0-9]
  4. \D [^\d]
  5. \s [\r\n\t\v\f] 空格符
  6. \S [^\s]
  7. \b 单词边界
  8. \B 非单词边界

 53e8997466506a6f942cf62987e74230.png

三:匹配规则:

贪婪模式:

字符串重左到右进行匹配,依次先匹配多的,再匹配少的。

一旦匹配上就不回头进行匹配

原则: 能匹配多,不会匹配少

非贪婪模式:

开启: var reg = /{{ (.*?) }}/g                    *? || +? || ?? 表示非贪婪模式;

四:子表达式反向引用:

var reg = /(a)\1\1\1/g

 var str = 'aaaaaabbbbbbbccccccc'
  var reg = /(\w)\1*(\w)\2*(\w)\3*/g;
  console.log(str.match(reg));
  const res = str.replace(reg, function(node, key1, key2, key3) {
    return key1 + key2 + key3
  });

五:方法:

  1. str.match(reg)方法

reg = /\d/g 全局匹配,返回匹配出的字符

var str = 'asdsf12bdf2dsfa3bdf134';
  var reg = /\d/g;

  console.log(str.match(reg));

非全局匹配: 

var str = 'asdsf12bdf2dsfa3bdf134';
  var reg = /\d/;

  console.log(str.match(reg));
// --------------------------------------------
var str = '123456123,123,321'
str.match(/123/g)  // ['123', '123', '123']
// ['123', index: 0, input: '123456123,123,321', groups: undefined]
str.match(/123/)  
// ['12345', '45', index: 0, input: '123456123,123,321', groups: undefined]
str.match(/123(234)/)
// ['1234561', '45', '61', index: 0, input: '123456123,123,321', groups: undefined]
str.match(/123(45)(61)/)

 index匹配到的第一个字符索引;input 原始字符

2. reg.exec(str) 方法

var str = 'asdsf12bdf2dsfa3bdf134';
  var reg = /\d/g;

  console.log(reg.exec(str));
  console.log(reg.exec(str));
  console.log(reg.exec(str));
  console.log(reg.exec(str));
  console.log(reg.exec(str));

 

3. str.split(reg)方法

var str = 'asdsf12bdf2dsfa3bdf134';
  var reg = /\d/g;
  console.log(str.split(reg));
// (8) ['asdsf', '', 'bdf', 'dsfa', 'bdf', '', '', '']

4. str.replace(reg, (node, key1, key2) => {}) || str.replace(reg, '$$1$2')

 

Str.replace(reg, function($, $1,$2) {
  $: 匹配出来的字符
  $1: 第一个子表达式
  $2: 第二个子表达式
})

str.replace(reg, function(node, key1, key2) {
    // 同上
})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值