我想实现一个功能:用正则表达式的方法去除字符串中最后一个指定的字符
我的方法是这样的:例如从字符串str = '774567888'
中删去最后一个字符‘7’
let str = '774567888'
let reg = /7(?=[^7]*)$/
console.log(str.match(reg), reg)
我的想法是用正则表达式匹配出‘7’,用先行断言筛选出后面没跟着相同字符的那一个,就是最后需要去除的‘7’
但是结果跑出来不如人意,而我在偶然中发现:
let reg = /7(?=[^7]*)$/ //不成功
let reg = /7(?=[^7]*$)/ //成功
以上正则表达式中第一个(就是我原本那个)不行,而第二个却可以,我很疑惑为什么把$
挪入括号内就可以了呢?
求解,谢谢!
断言是条件不参与匹配 所以第一个的意思是匹配以7结尾。