javascript正则表达式向后查找以替换字符
我有一长串代码,看起来像javascript正则表达式向后查找以替换字符,javascript,regex,lookbehind,Javascript,Regex,Lookbehind,我有一长串代码,看起来像 hs2^Ȁ_^你好(fs2)&(x0200)_^世界杯_^主页 我需要换一个。重复使用十六进制字符Ȁ并且它前面总是有一个^。我需要更改每个^Ȁ将这些数字减少1。所以最终的结果将是 hs1^Ȁ_^你好(x0200)_^世界卫生组织(gn2)Ȁ_^主页 我这里只处理两个数字,2或3,所以代码应该是这样的 If(在^Ȁ;==2之前的任何数字)将其更改为1 如果(直接在^Ȁ;==3之前的任何数字
hs2^Ȁ_^你好(fs2)&(x0200)_^世界杯_^主页代码>
我需要换一个。重复使用十六进制字符Ȁ代码>并且它前面总是有一个^
。我需要更改每个^Ȁ代码>将这些数字减少1。所以最终的结果将是
hs1^Ȁ_^你好(x0200)_^世界卫生组织(gn2)Ȁ_^主页代码>
我这里只处理两个数字,2或3,所以代码应该是这样的
If(在^Ȁ;==2之前的任何数字)将其更改为1
如果(直接在^Ȁ;==3之前的任何数字)将其更改为2
我听说过一种叫做“回头看”或“回头看”的东西,这就是这里所需要的吗?您可以使用回调函数来替换replace
,该函数将用于使用您自己的逻辑替换每个事件:
var str=“hs2^Ȁ;#你好#xxfs2^Ȁ;#世界#xgn3^Ȁ;#家庭#xgs3^Ȁ;”;
var res=str.replace(/\d(?=\^&&x0200;)/g,num=>--num);
控制台日志(res)代码>您可以使用带有回调函数的replace
,该函数将用于使用您自己的逻辑替换每个事件:
var str=“hs2^Ȁ;#你好#xxfs2^Ȁ;#世界#xgn3^Ȁ;#家庭#xgs3^Ȁ;”;
var res=str.replace(/\d(?=\^&&x0200;)/g,num=>--num);
控制台日志(res)
您可以使用正向前瞻消除substr
调用。@revo确实,这使它更加简单!Thanks@CheeseFlavored我编辑了我的答案,以反映您可以使用正向前瞻消除substr
调用的更改。@revo确实,这使它更简单!Thanks@CheeseFlavored我编辑了我的答案以反映这一变化