我试图从一些动态生成的字符串中删除一些空格 . 我删除的空间取决于字符串的长度 . 字符串一直在变化,所以为了知道有多少空格,我迭代字符串并在每次迭代遇到空格时递增一个变量 . 我已经可以使用 str.replace(' ','');
删除所有特定类型的字符,其中'str'是我的字符串的名称,但我只需要删除特定的空格,而不是所有空格 . 所以我要说我的字符串是
var str = "Hello, this is a test.";
如何在“是”之后删除空格? (假设下一个字符串不同,所以我不能只写str.replace('is','is');因为单词“is”可能不在下一个字符串中) .
我检查了documentation on .replace,但它没有接受其他参数,所以我不能告诉它只是替换空格的第n个实例 .
5 回答
如果你想通过空格的索引:
http://jsfiddle.net/96Lvpcew/1/
因为您很容易获得空间的索引(当您在字符串上进行迭代时),您可以通过执行以下操作来创建一个没有空格的新字符串:
其中
index
是要删除的空间的索引 .我想出了这个未知指数
您是否知道由于字数或字符数而要删除哪个空格?
如果计算炭数,你可以Rafaels Cardoso的回答,
如果字数统计你可以用空格分割它们然后加入你想要的:
我认为最好的办法是根据字符串中空格的位置将字符串拆分为数组,拼接出您不想要的空格,然后将数组重新加入字符串中 .
看一下这个:
Further Notes
首先要注意的是
str.replace(' ','');
实际上只会替换空格字符的第一个实例 .String.replace()
也接受正则表达式作为第一个参数,您将要用于更复杂的替换 .要实际替换字符串中的所有空格,您可以执行
str.replace(/ /g,"");
并替换所有空格(包括空格,制表符和换行符),您可以执行str.replace(/\s/g,"");
为了摆弄不同的正则表达式并查看它们的含义,我建议使用http://www.regexr.com
JavaScript
String
对象上的许多函数似乎都将字符串作为参数,也可以使用正则表达式,包括.split()
和.search()
.