正则表达式 - 各位大侠,请教一下:Javascript不支持负向后瞻(?<!),用什么方法可以实现后瞻的效果呢?
天蓬老师
天蓬老师 2017-04-10 12:45:34
0
2
499

举个例子: 需要检索到文章的关键字后做修改,关键字为:“B”,“AB”,检索B的时候要排除它前一位是A的情况,正则表达式应该是(?<!A)B

但是JS不支持(?<!),也没查到可以代替的的方法,不知道哪位大侠有办法的,能否指点本菜鸟一二?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
PHPzhong
((?!A).|^)(B)
((?!XYZ).{3}|^)(B)
var r = /((?!A).|^)(B)/;
// 如果只是想替换 B,就用 $1 保留前面不小心匹配到的内容
'XB'.replace(r, "$113");
// X13
いいねを押す +0
小葫芦

前瞻后瞻一般都能转换成分组反向引用

"ABB".replace(/([^A])B/, "$1C") 分组1匹配到B前非A的字符,替换的时候用反向引用$1保留这个字符

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート