0

数字と中括弧を削除したいのですが、スプライシングすると、文字列から取得したインデックスの間に文字列が作成されます。「1234.....ABCDEFG」を残して削除したいだけです

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

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

2 に答える 2

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/

于 2012-10-18T06:11:42.147 に答える
1

spliceStringメソッドではないため、コードは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('');
于 2012-10-18T06:12:05.387 に答える