如果正则表达式中包含零宽断言的话 , 在安卓手机上正常 , 但是在ios上会报以下错误
1 | Info Warn Error SyntaxError: Invalid regular expression: invalid group specifier name |
常用零宽断言:?<=、?<!、?!、?=
;
1
let reg = new RegExp(`(?<=\\b${key}=)[^&]*`) , str = this.params || '', target = str.match(reg); if(target) { return target[0] }
这种写法在安卓是正常的,IOS就不行,因为该正则包含了零宽断言,会导致页面空白,打不开,需要相对应的转换才能使用
1 | let reg = new RegExp(`(^|&)${key}=([^&]*)(&|$)`),str = this.params || '', target = str.match(reg);if(target) { return target[2]} |