let regex = new regexp('xyz', 'i') // 等价于 let regex = /xyz/i let regex = new regexp(/xyz/i) // 等价于 let regex = /xyz/i
注意!!!
let regex = new regexp(/xyz/, 'i') // 这种写法是错误的
new regexp(/abc/ig, 'i').flags // 第二个参数i会将前面的ig进行覆盖
let str="1 plus 2 equal 3" str.match(/\d+/g) // ['1','2','3']
let str = 'nihao jack' str.replace(/jack/, 'lucy') // nihao lucy
let str = 'good body' str.search(/body/) // 5 let str = 'good body' str.search(/girl/) // -1
let str = 'good body' str.split('o') ["g", "", "d b", "dy"]
let str = /hello/; let str2 = /hello/u; str.unicode // false str2.unicode // true
let str = 'aaa_aa_a' let reg1 = /a+/g let reg2 = /a+/y reg1.exec(s) // ['aaa'] reg2.exec(s) // ['aaa'] reg1.exec(s) // ['aa'] reg2.exec(s) // null y修饰符从剩余项的第一个位置开始(即_)所以找不到 lastindex属性可以指定每次搜索的开始位置 reg2.lastsindex = 1 reg2.exec(s) // ['aa'] 实际上y修饰符号隐含了头部匹配的标志^
'a1a2a3'.match(/a\d/y) // ['a1'] 'a1a2a3'.match(/a\d/gy) // ['a1','a2','a3']
const reg = /(\d{4})-(\d{2})-(\d{2})/ const matchobj = reg.exec('1999-12-31') const year = matchobj[1]; // 1999 const month = matchobj[2]; // 12 const day = matchobj[3]; // 31
问题: 只能用数字序号引用,组的顺序改变,引用的时候就必须修改序号
const reg = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/ const matchobj = reg.exec('1999-12-31') const year = matchobj.groups.year // 1999 const month = matchobj.groups.month // 12 const day = matchobj.groups.day // 31 如果具名组没有匹配,那么对应的groups对象属性会是undefined
let {groups: {one, two}} = /^(?<one>.*):(?<two>.*)$/u.exec('foo:bar') console.log({one, two}) // {one: 'foo', two: 'bar'}
如对本文有疑问, 点击进行留言回复!!
MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)
javascript如何使用函数random来实现课堂随机点名方法详解
网友评论