使用两个捕获组和JavaScript的replace()函数
Using two capturing groups with JavaScript's replace() function
给定这样的字符串+as[23+"AS@D"-@]
将[
和]
之间的所有@
实例替换为紧随[
后面的数字(在本例中:23
(。请使用 JavaScript 回答(建议使用 .replace()
(。所以使用这个算法,+as[23+"AS@D"-@]
将更改为+as[23+"AS23D"-23]
这是我的正则表达式'[('d+)[^']]*('@*)']
第二个捕获组未被捕获(Regexr 告诉我第二个捕获组中没有捕获任何内容(。我需要帮助使第二个捕获组捕获所有@
实例
我尝试使用Mozilla Developer寻求帮助,但它不起作用。任何帮助将不胜感激。答案必须有解释。
如果这个问题不够清楚,请在评论中告诉我如何改进。
您可以在 Javascript 中将 replace
与回调函数一起使用:
var s = '+as[23+"AS@D"-@]';
var r = s.replace(/'[('d+)[^']]*']/, function($0, $1) {
return $0.replace(/@/g, $1);});
//=> +as[23+"AS23D"-23]
$0
表示 [
和 ]
之间的整个字符串,$1
是第一个捕获组,即紧随[
之后的数字。
相关文章:
- 字符串中的javascript replace()
- 使用Javascript.replace中的变量
- JavaScript .replace HTML 标记不会替换
- 传递给JavaScript replace()函数的内容
- Javascript replace() with $1
- JavaScript replace() 不替换包含文字 字符串的文本
- JavaScript replace() Method
- iOS Javascript replace "
- 如何在动态字符串上使用 JavaScript replace()
- JavaScript replace() 大写或小写
- 如何在页面中应用 JavaScript replace() 方法 2 时间
- JavaScript .replace() 部分的 url 不起作用
- Javascript replace() 删除单引号会产生奇怪的结果
- javascript .replace and jQuery .map
- Performance of Javascript replace vs jQuery replace
- Javascript:replace() 所有,但只在 html 标记之外
- 为什么 Javascript replace() 函数不做任何事情
- javascript .replace width tag
- javascript replace()不会替换所有匹配的字符
- Javascript replace()regexp:嵌套修饰符