2011-03-07 63 views

回答

12

首先找到要替换的字符串的子字符串,然后将该字符串的第一次出现替换为空字符串。

S = S.replace(S.substring(bindex, eindex), ""); 

另一种方式是将字符串转换为数组,splice掉不需要的部分,再转换为字符串。

var result = S.split(''); 
result.splice(bindex, eindex - bindex); 
S = result.join(''); 
+9

第一种方法可能会取代比预期更多的东西。 – alexandernst 2013-12-03 14:56:57

+1

更进一步,如果字符串中存在unicode,则第二种方法会执行奇怪的操作。 (正如你使用''''''') – alexandernst 2013-12-03 14:59:14

+1

拆分.replace()只会替换给定字符串的第一个匹配项。如果有的话,这种方法将删除不必要的东西 – 2017-05-29 10:22:54

0

您可以:

  1. 从bindex获得子和eindex
  2. 从字符串
  3. 删除空格重建串

    var new_s = S.slice(1,bindex)+ S.slice(bindex,eindex).replace(/ \ s/g,'')+ S.slice(eindex)

+0

对不起。我误读了你的问题,阅读'删除所有空格'而不是'删除所有字符' – Don 2011-03-07 09:08:10

1

S.split(S.substring(bindex,eindex))加入(”“);

6

尝试

S = S.substring(0, bindex)+S.substring(eindex); 
21

以文本bindex之前和之后eindex文字串连,如:

var S="hi how are you"; 
var bindex = 2; var eindex = 6; 
S = S.substr(0, bindex) + S.substr(eindex); 

小号现在是 “嗨,你”

+1

这似乎是最安全的方法。应该是被接受的答案 – 2017-05-29 10:23:19

+0

我喜欢这个,它避免了友好的火力。 – TechNyquist 2018-03-09 16:58:23

相关问题