Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript正则表达式向后查找以替换字符_Javascript_Regex_Lookbehind - Fatal编程技术网

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我编辑了我的答案以反映这一变化