Javascript 有没有一种方法可以动态地向正则表达式匹配的每个实例添加代码?

Javascript 有没有一种方法可以动态地向正则表达式匹配的每个实例添加代码?,javascript,regex,match,each,Javascript,Regex,Match,Each,假设我有一个文本块,我想用一个索引编号替换单词“the”的每个实例 例如 “大白鲨是咬合理论之父。” 会变成 “0大白鲨是咬伤的1 fa2r。” 我要找的东西是: myText.match(/the/gi).each(函数(i){ //? }); 欢迎使用jquery解决方案。示例: 函数replaceText(text,splitArg){ //var text=“axa”; var parts=text.split(splitArg); var=”; var部分; 对于(变量i=0;i 0)

假设我有一个文本块,我想用一个索引编号替换单词“the”的每个实例

例如

“大白鲨是咬合理论之父。”

会变成

“0大白鲨是咬伤的1 fa2r。”

我要找的东西是: myText.match(/the/gi).each(函数(i){ //? });


欢迎使用jquery解决方案。

示例:

函数replaceText(text,splitArg){
//var text=“axa”;
var parts=text.split(splitArg);
var=”;
var部分;
对于(变量i=0;i 0)
替换+=i-1;
替换+=零件;
}
更换退货;
}
函数写入线(文本){
文件。写(“”+文本+“

”); } writeLine(替换文本(“axa”、“x”)); writeLine(替换文本(“axa”,“x”)); writeLine(替换文本(“axxa”,“x”)); writeLine(replaceText(“axxa”、/x+/)//**使用正则表达式** writeLine(替换文本(“,”x”); writeLine(替换文本(“aa”、“x”)); //输出: //a0a //a0a1a //a0a12a //a0a1a // //aa

如果您想玩:

我最喜欢的功能之一。请注意,提供的函数传递了一个参数列表,该列表基本上与“exec”函数返回的数组相同。第一个参数是整个匹配,后续参数是捕获的组。(我知道你知道,@patrick dw我刚刚为阅读这些答案的年轻人补充了这个。)@Pointy:非常值得注意。
var i = -1;
myText = myText.replace(/the/gi, function(){ return ++i; });
function replaceText(text, splitArg) {
    //var text ="axaxa";
    var parts = text.split(splitArg);

    var replaced = "";
    var part;
    for (var i=0;i<parts.length;i++) {
        part = parts[i]
        if(i > 0)
            replaced += i-1;

        replaced+=part;

    }
    return replaced;
}


function writeLine(text) {
     document.write("<p>"+text+" &nbsp;</p>");   
}

writeLine(replaceText("axa", "x"));
writeLine(replaceText("axaxa", "x"));
writeLine(replaceText("axaxxa", "x"));
writeLine(replaceText("axaxxa", /x+/));//**using a regex!**
writeLine(replaceText("", "x"));
writeLine(replaceText("aa", "x"));

//output:
//a0a  
//a0a1a  
//a0a12a  
//a0a1a  
// 
//aa