删除JavaScript中字符串的第(n)个空格

删除JavaScript中字符串的第(n)个空格,javascript,string,replace,Javascript,String,Replace,我试图从几个动态生成的字符串中删除一些空格。删除哪个空格取决于字符串的长度。字符串一直在变化,所以为了知道有多少个空格,我迭代字符串,每次迭代遇到空格时增加一个变量。我已经可以用str.replace(“”,”)删除所有特定类型的字符其中'str'是我的字符串的名称,但我只需要删除一个特定的空格,而不是所有的空格。假设我的字符串是 var str = "Hello, this is a test."; 如何仅删除单词“is”后的空格?(假设下一个字符串不同,所以我不能只写str.replace

我试图从几个动态生成的字符串中删除一些空格。删除哪个空格取决于字符串的长度。字符串一直在变化,所以为了知道有多少个空格,我迭代字符串,每次迭代遇到空格时增加一个变量。我已经可以用
str.replace(“”,”)删除所有特定类型的字符其中'str'是我的字符串的名称,但我只需要删除一个特定的空格,而不是所有的空格。假设我的字符串是

var str = "Hello, this is a test.";
如何仅删除单词“is”后的空格?(假设下一个字符串不同,所以我不能只写str.replace('is','is');因为单词“is”可能不在下一个字符串中)


我检查了,但它不接受任何其他参数,因此我不能告诉它仅替换空间的第n个实例。

由于很容易获得空间的索引(当您迭代字符串时),您可以通过执行以下操作创建一个不带空格的新字符串:

str = str.substr(0, index)+ str.substr(index);

其中
index
是要删除的空间的索引。

您知道由于字数或字符数的原因要删除哪个空间吗

如果是char count,你可以用Rafaels Cardoso的答案

如果进行字数计算,则可以使用空格将其拆分,然后按需要合并:

var wordArray = str.split(" ");
var newStr = "";
wordIndex = 3; // or whatever you want
for (i; i<wordArray.length; i++) {
   newStr+=wordArray[i];
   if (i!=wordIndex) {
     newStr+=' ';
   }
}
var wordArray=str.split(“”);
var newStr=“”;
wordIndex=3;//或者你想要的任何东西

对于(i;i,如果您想通过空间的索引:

var str = 'Hello, this is a test.';

function replace(str, indexes){
    return str.split(' ').reduce(function(prev, curr, i){
        var separator = ~indexes.indexOf(i) ? '' : ' ';
        return prev + separator + curr;
    });
}

console.log(replace(str, [2,3]));

我为未知指数想出了这个方法

function removeNthSpace(str, n) {
    var spacelessArray = str.split(' ');
    return spacelessArray
               .slice(0, n - 1) // left prefix part may be '', saves spaces
               .concat([spacelessArray.slice(n - 1, n + 1).join('')]) // middle part: the one without the space
               .concat(spacelessArray.slice(n + 1)).join(' '); // right part, saves spaces
}

我认为最好的方法是根据字符串中空格的位置将字符串拆分为数组,剪接不需要的空格,然后将数组重新合并为字符串

看看这个:

var x=“您好,这是一个测试。”;
var n=3;//我们要删除第三个空格
var arr=x.split(/([])/);//根据空间位置复制到数组
//arr:[“你好”,“这个”,“是”,“是”,“a”,“测试”]
arr.splice(n*2-1,1);//删除第三个空格
x=arr.join(“”);

alert(x);//“您好,这是isa测试。”
谢谢ziv,这是按字符数计算的,我刚刚看到您的答案,所以我选择了Cardoso的答案。谢谢您的帮助。非常感谢。