首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Regular Expression(replace 'BC' but not replace 'ABC'),该如何处

2013-12-05 
Regular Expression(replace ➼ɻut not replace 𧪼')本帖最后由 benwu1210 于 20

Regular Expression(replace 'BC' but not replace 'ABC')
本帖最后由 benwu1210 于 2013-12-03 20:25:01 编辑 在javascript里  我目前使用Regular Expression
data = data.replace(/BC/g, "SS").replace(/DE/g, "TT") 
把全部的「BC」replace成「SS」
且全部的「DE」replace成「TT」

但进一步的想
把全部的「BC」replace成「SS」,但若「BC」前面一个字是「A」则维持不变
且全部的「DE」replace成「TT」,但若「DE」後面一个字是「F」则维持不变

如下
处理前NVBCSPOTABCBSMKBDEVSDEFER
处理後NVSSSPOTABCBSMKBTTVSDEFER

请问该如何处理呢?

[解决办法]
var a='NVBCSPOTABCBSMKBDEVSDEFER';
a=a.replace(/.BC/g,function(x){
if(x.indexOf('A')==0){
return x;
}else{
return x.substring(0,1)+'SS';
}
}).replace(/DE(?!F)/g,'TT');
alert(a=='NVSSSPOTABCBSMKBTTVSDEFER');
这样试试
[解决办法]
这个:


var data='NVBCSPOTABCBSMKBDEVSDEFER';
data = data.replace(/(?!A)BC/g, "SS").replace(/DE(?!F)/g, "TT");  //js不支持(?<!A) 零宽度负预测先行断言,不要用
alert(data);

热点排行