使用Javascript RegExp将每个匹配项替换为一个迭代数

使用Javascript RegExp将每个匹配项替换为一个迭代数,javascript,regex,replace,iterator,Javascript,Regex,Replace,Iterator,我想用一个迭代数替换字符串中的空行 e、 g。 替换 字符串: "My first line My second line My third line" 与 我可以使用 var newstring = TestVar.replace (/(^|\n\n)/g, "\nhello\n"); 然而,我正在努力添加一个函数,该函数将为每个函数添加一个迭代数 你能帮忙吗 蒂亚 Gids是的,您可以用javascript实现。只需将函数作为第二个参数传递给replace var i = 0; va

我想用一个迭代数替换字符串中的空行

e、 g。 替换

字符串:

"My first line

My second line

My third line"

我可以使用

var newstring = TestVar.replace (/(^|\n\n)/g, "\nhello\n");
然而,我正在努力添加一个函数,该函数将为每个函数添加一个迭代数

你能帮忙吗

蒂亚


Gids是的,您可以用javascript实现。只需将函数作为第二个参数传递给
replace

var i = 0;
var newstring = TestVar.replace(/(^|\n\n)/g, function() { return '\n' + (++i) + '\n'; });
函数实际上得到了很多参数,您可以根据这些参数决定要替换的值,但我们不需要任何参数来完成此任务


然而,了解它们是件好事,MDC有一个很棒的

这里有一个不使用正则表达式的版本。您可以使用
String
split()
方法,不过坦率地说,我会使用更简洁的正则表达式版本

var testVar = "My first line\n\nMy second line\n\nMy third line";
var lines = testVar.split("\n\n"), newStringParts = [];
for (var i = 0, len = lines.length; i < len; ++i) {
    newStringParts.push(i + 1);
    newStringParts.push(lines[i]);
}
alert( newStringParts.join("\n") );
var testVar=“我的第一行\n\n我的第二行\n\n我的第三行”;
var line=testVar.split(“\n\n”),newStringParts=[];
对于(变量i=0,len=lines.length;i
为了用html中的名称替换图像路径,我做了如下操作

html='hello <img src="../../../../yahoo/images/icons/common/image_one.png">a<img \
src="add.png"> xyz <table><tbody><tr><td>He<img src="document_add.png">loo<img\
src="document_add.png"></td></tr></tbody></table><img src="CD_delete.png"><img src="check.png">'


html.replace(/src="(.*?)"/ig, function($1){return 'src="'+$1.match(/([^\/\\]+)\.(\w+)/)[0]+'"'  });
html='hello a xyz Heloo'
html.replace(/src=“(.*)”/ig,函数($1){return'src=“'+$1.match(/([^\/\]+)\.(\w+/)[0]+'});
输出将是

   "hello <img src="image_one.png">a<img src="src="add.png"> xyz <table><tbody><tr><td>He<img src="src="document_add.png">loo<img src="src="document_add.png"></td></tr></tbody></table><img src="src="CD_delete.png"><img src="src="check.png">"
“你好,xyz你好”

请在每行开始处用四个空格缩进您的代码块。感谢大家的提醒,我会确保我在将来这样做的。非常感谢您的快速和有用的响应。我原以为这在IE 6中不起作用,但事实上它确实起作用了。原来IE 5是最后一个版本,它不支持将函数作为String.replace中的第二个参数。查看非regexp选项总是一个好主意
   "hello <img src="image_one.png">a<img src="src="add.png"> xyz <table><tbody><tr><td>He<img src="src="document_add.png">loo<img src="src="document_add.png"></td></tr></tbody></table><img src="src="CD_delete.png"><img src="src="check.png">"