正则

2023-10-17  本文已影响0人  cutecat

规则

  1. 特殊字符
  1. [匹配规则], {重复次数}, (分组)
    • ^foo: foo开头
    • [^\w] 非\w

创建一个regexp

  1. new RegExp('foo', g)
new RegExp('\w', g)
等同于
new RegExp('w', g)
等同于
/w/g
需要用转义字符再转译一次
new RegExp('\\w')
等同于
/\w/
  1. 标识符
    g 全局
    i 大小写忽略
    m 有换行符的多行

方法

String.prototype.match


  var str = 'foo 234typefoo'
  1. reg 不带全局
    var reg = /(fo)o/
    str.match(reg) // ['foo', 'fo',  index: 0, input: 'foo 234typefoo', groups: undefined]
  只会返回第一项的各种信息和分组内容
  2. reg 带全局
    var reg = /(fo)o/g
    str.match(reg) // ['foo', 'foo']
  会返回所有匹配项组成的数组,但是没有其他分组信息

String.prototype.matchAll 接受一个全局正则,返回匹配到的每一项所有信息的集合

  var str = 'foo 234typefoo'
  var reg = /(fo)o/g // 只能是全局的reg
  str.matchAll(reg) // [['foo', 'fo',  index: 0, input: 'foo 234typefoo', groups: undefined], ['foo', 'fo',  index: 11, input: 'foo 234typefoo', groups: undefined]]

String.prototype.replace


var str = 'foo 234typefoo'
var reg = /foo/g
str.replace(reg, '替换想')
等同于
str.replaceAll('foo', '替换想')

reg.test(str) 匹配到true
reg.exec(str) 每调用一次匹配一项

var str = 'foo 234typefoo'
var reg = /foo/g
reg.exec(str)
// ['foo', index: 0, input: 'foo 234typefoo', groups: undefined]
reg.exec(str)
// ['foo', index: 11, input: 'foo 234typefoo', groups: undefined]
上一篇 下一篇

猜你喜欢

热点阅读