Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript替换,忽略第一个匹配项_Javascript - Fatal编程技术网

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,

我有以下javascript脚本

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
变量。