Javascript替换,忽略第一个匹配项
我有以下javascript脚本Javascript替换,忽略第一个匹配项,javascript,Javascript,我有以下javascript脚本 var idText; var idText1; idText = "This_is_a_test"; idText1 = idText.replace(/_/g, " "); alert(idText1); 当我显示idText1时,它会替换所有下划线,并将它们放在原来的位置。然而,我试图保留第一个下划线,所以我得到“这是一个测试”。这有可能吗?当然有可能,这里有一个选项: var n = 0; idText1 = idText.replace(/_/g,
var idText;
var idText1;
idText = "This_is_a_test";
idText1 = idText.replace(/_/g, " ");
alert(idText1);
当我显示idText1时,它会替换所有下划线,并将它们放在原来的位置。然而,我试图保留第一个下划线,所以我得到“这是一个测试”。这有可能吗?当然有可能,这里有一个选项:
var n = 0;
idText1 = idText.replace(/_/g, function($0) {
n += 1;
return n === 1 ? $0 : " ";
});
这将使用一个用于替换的回调,为每个匹配增加一个计数器,并通过检查该计数器的值将第一个匹配替换为原始文本。当然有可能,这里有一个选项:
var n = 0;
idText1 = idText.replace(/_/g, function($0) {
n += 1;
return n === 1 ? $0 : " ";
});
这使用了一个用于替换的回调,为每个匹配增加一个计数器,并通过检查该计数器的值将第一个匹配替换为原始文本。使用回调代替空格作为第二个参数。使用回调代替空格作为第二个参数。当我尝试此操作时,警报弹出窗口显示“未定义”,请立即尝试,我只是显示替换,没有将结果分配回
idText1
变量。当我尝试此操作时,警报弹出窗口显示“未定义”立即尝试,我只是显示替换,没有将结果分配回idText1
变量。