正则表达式学习笔记

正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本

新建一个正则表达式:
var reg= /xyz/; 或者 var reg = new RegExp(‘xyz’);
它们的主要区别是,第一种方法在引擎编译代码时,就会新建正则表达式,第二种方法在运行时新建正则表达式,所以前者的效率较高。

实例方法:
test:一个字符串中测试是否匹配的RegExp方法,它返回true或者false;

/cat/.test('cats and dogs') // true

exec:一个字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null)

/x/.exec('x124') // ["x"]

match:一个字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null

/x/.match('x124') // ["x"]

如果正则表达式带有g修饰符,则该方法与正则对象的exec方法行为不同

var s = 'abba';
var r = /a/g;

s.match(r) // ["a", "a"]
r.exec(s) // ["a"]

search:一个字符串在测试匹配的String方法,它返回匹配到的位置索引,或者在失败是返回-1

'x123'.search(/x/) //0

replace:一个字符串在执行查找匹配的String方法,并且使用替换字符串退换掉匹配的字符串

'aaa'.replace(/a/, 'b') // "baa"
'aaa'.replace(/a/g, 'b') // "bbb"

split:一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法

// 正则分隔,去除多余的空格
'a,  b,c, d'.split(/, */)
// [ 'a', 'b', 'c', 'd' ]

利用正则表达式给数字添加千分号

//① 不是起始位置 后面连续3个数字 ,最终恰好匹配到结尾
// ^表示开头  $表示结尾
// 正则/(?!^)(?=(\d{3})+$)/g
'10000000000000000'.replace(/(?!^)(?=(\d{3})+$)/g,',')

//② 千分号前必须要有一个数字  连续3个数字到刚好匹配到结尾,
// 正则/(\d)(?=(\d{3})+$)/g

'10000000000000000'.replace(/(\d)(?=(?:\d{3})+$)/g,'$1,')

正则截取中间字符串

let str = '这是测试--sdfASDQWC--字符串'
console.log(str.match(/(?<=测试--).+(?=--字符)/)[0])

正则表达式中 的$1,$2
$1,$2表达的是小括号里面的内容

$1是第一个小括号里的内容,$2是第二个小括号里面的内容,依此类推

比如(\d{4})(\d{2})(\d{2}) 匹配"20200101"

$1是第一个括号里匹配的2020

$2是第二个括号里匹配的01

$3是第三个括号里匹配的01

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值