2012-10-18 64 views
0

我想删除数字和大括号,但是拼接结果是从字符串获取的索引之间的字符串。我只是希望它去除,留下我:“1234 ..... ABCDEFG”Javascript:删除字符串中的随机字符串

var mystring = "1234 ..... { 400 } ABCDEFG"; 

var s1 = mystring.indexOf("{"); 
var s2 = mystring.indexOf("}");   
mystring = mystring.splice(s1,s2); 

回答

2

您可以使用正则表达式替换只删除它们之间的撑杆和字符:

var mystring = "1234 ..... { 400 } ABCDEFG"; 
mystring = mystring.replace(/\{.*?\}/, ""); 

工作演示:http://jsfiddle.net/jfriend00/sDHc9/


如果你不想使用正则表达式,你可以做这样的:

var mystring = "1234 ..... { 400 } ABCDEFG"; 
var s1 = mystring.indexOf("{"); 
var s2 = mystring.indexOf("}"); 
mystring = mystring.substr(0, s1) + mystring.substr(s2 + 1); 
alert(mystring);​ 

工作例如:http://jsfiddle.net/jfriend00/RHhe4/

1

splice不是String方法,让你的代码应该抛出一个TypeError

使用

var mystring = "1234 ..... { 400 } ABCDEFG"; 
mystring = mystring.replace(/{.+?}/,''); 

或者,如果你真的想用splice

var mystring = "1234 ..... { 400 } ABCDEFG"; 
var s1 = mystring.indexOf("{"); 
var s2 = mystring.indexOf("}"); 
mystring = [].splice.call(mystring,0,s1) 
      .concat([].splice.call(mystring,s2+1)) 
      .join('');