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

时间:2015-05-06 21:52:27

标签: javascript string replace

我试图从一些动态生成的字符串中删除一些空格。我删除的空间取决于字符串的长度。字符串一直在变化,所以为了知道有多少空格,我迭代字符串并在每次迭代遇到空格时递增一个变量。我已经可以使用@Override public void nextTuple() { try { String message = _mqClient.getMessage(); if (message != null) { _collector.emit(new Values(message)); } // sleep for 50 milliseconds Utils.sleep(50); } catch (Exception e) { _collector.reportError(e); LOG.error("MQ spout error {}", e); } } 删除所有特定类型的字符,其中'str'是我的字符串的名称,但我只需要删除特定的空格,而不是所有空格。所以我要说我的字符串是

str.replace(' ','');

如何在“是”之后删除空格? (假设下一个字符串不同,所以我不能只写str.replace('is','is');因为单词“is”可能不在下一个字符串中。)

我检查了documentation on .replace,但是它没有接受任何其他参数,所以我不能告诉它只是替换空格的第n个实例。

5 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您是否知道由于字数或字符数而要删除哪个空格?

如果算上炭算,你可以回答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+=' ';
   }
}

答案 2 :(得分:0)

如果你想通过空格的索引:

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]));

http://jsfiddle.net/96Lvpcew/1/

答案 3 :(得分:0)

我想出了未知指数

<cfobject type=".NET" name="TestCFEntry" class="TestCFEntryPoint.CFEntryPoint" assembly="d:/path/to/dll/TestClass.dll">

答案 4 :(得分:0)

我认为最好的办法是根据字符串中空格的位置将字符串拆分为数组,拼接出你不想要的空格,然后将数组重新加入字符串中。

检查出来:

&#13;
&#13;
var x = "Hello, this is a test.";
var n = 3; // we want to remove the third space
var arr = x.split(/([ ])/); // copy to an array based on space placement
// arr: ["Hello,"," ","this"," ","is"," ","a"," ","test."]
arr.splice(n*2-1,1); // Remove the third space
x = arr.join("");
alert(x); // "Hello, this isa test."
&#13;
&#13;
&#13;

进一步说明

首先要注意的是str.replace(' ','');实际上只会替换空格字符的第一个实例。 String.replace()还接受正则表达式作为第一个参数,您希望将其用于更复杂的替换。

要实际替换字符串中的所有空格,您可以执行str.replace(/ /g,"");并替换所有空格(包括空格,制表符和换行符),您可以执行str.replace(/\s/g,"");

为了摆弄不同的正则表达式并查看它们的含义,我建议使用http://www.regexr.com

JavaScript String对象上的许多函数似乎都将字符串作为参数,也可以使用正则表达式,包括.split().search()