正则零宽断言在IOS兼容性问题

正则零宽断言在IOS兼容性问题,第1张

一、正则表达式零宽断言(?=、?<=、?!、?零宽断言是正则表达式中的一种方法,正则表达式在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。

1,=号的,是肯定匹配
2,< 号的 ,是写在前面的,取后面的值
3,!号的 ,是否定的,
4,不带<号的,是写在后面的,取前面的值,
一共4种:
(?=exp) 也叫零宽度正预测先行断言,例:\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分
(?<=exp) 也叫零宽度正回顾后发断言,例:(?<=\bre)\w+\b会匹配以re开头的单词的后半部分
(?!exp) 也叫零宽度负预测先行断言,例:\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字
(? 也叫零宽度负回顾后发断言来断言,例:(?

 

二、零宽断言在IOS兼容性问题
let regx = /(?<=$).*?(?=$)/g;

报错:SyntaxError: Invalid regular expression: invalid group specifier name __ERROR

报错原因:目前ios不支持零宽断言,需要换种写法

 

三、js正则表达式匹配替换特殊符号之间的内容

需求:把$之间包裹的内容替换成红色

let str = '差值(B-A)(共修改$28$项$天才坊$)'
let regx = /\$(.*?)\$/g
let strArr = str.match(regx)
strArr.map((el) => {
let val = el.replace(/\$/g, '')
str = str.replace(el, `${val}`)
})
console.log(strArr, str, 7)
//strArr: ["$28$", "$天才坊$"]
//str: 差值(B-A)(共修改28天才坊)

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存