Javascript 使用正则表达式替换字符串

Javascript 使用正则表达式替换字符串,javascript,regex,node.js,Javascript,Regex,Node.js,在javascript中,我使用node在Json.stringify后面有一个字符串。我想用'ab^^^^^^^'替换字符串中以'ab'开头的文本,然后后跟一些数字(至少一个数字),其中'^'的数字应该等于ab之后的数字。以ab开头的文本可以至少出现一次,在本例中,它出现两次。我需要正则表达式和替换字符串方面的帮助 字符串-在这种情况下,以ab开头的文本出现两次 var str = JSON.stringify({"abc":{"idcardno":"ertyuiop","form":{"so

在javascript中,我使用node在Json.stringify后面有一个字符串。我想用'ab^^^^^^^'替换字符串中以'ab'开头的文本,然后后跟一些数字(至少一个数字),其中'^'的数字应该等于ab之后的数字。以ab开头的文本可以至少出现一次,在本例中,它出现两次。我需要正则表达式和替换字符串方面的帮助

字符串-在这种情况下,以ab开头的文本出现两次

var str = JSON.stringify({"abc":{"idcardno":"ertyuiop","form":{"somestring":"This string:\n- can have multiple \nab12345ab5677\n","flag":"true","flag2":"false"},"anothertext":"samplestring","numbetstr":"7"}});
在正则表达式替换之后,应该是这样的

{"abc":{"idcardno":"ertyuiop","form":{"somestring":"This string:\n- can have multiple \na^^^^^ab^^^^\n","flag":"true","flag2":"false"},"anothertext":"samplestring","numbetstr":"7"}}
编辑

根据下面的帖子,下面是obj.abc.form.string的内容,有多行。如何用正则表达式(上面提到的)替换这个对象

This string:
- can have multiple 
ab12345ab56778

不要使用regexp处理stringifed JSON。处理JavaScript对象本身,然后字符串化。在您的情况下,假设
obj
是输入:

obj.abc.form.somestring = transform(obj.abc.form.somestring);
str = JSON.stringify(obj);

其中,
transform
是进行所需转换的regexp/replace。

@torazaburo是正确的,直接操作JSON是不好的做法。但是,一旦在obj.abc.form.somestring中找到字符串,就可以使用传递函数:

str.replace(/ab\d+/g, function(match) {return match.replace(/\d/g,'^')})

谢谢。。。你能帮我整理一下正则表达式吗?字符串obj.abc.form.somestring有多行-编辑了我的问题。谢谢大家。。。。。。成功了。是否有任何理由认为直接从stringify操作字符串是一种不好的做法?是否有任何理由认为这是一种不好的做法。1.你不需要。2.您可以破坏JSON。