文字列の一部を削除するにはどうすればよいですか?


回答:


147

これを行う私のお気に入りの方法は、「分割とポップ」です。

var str = "test_23";
alert(str.split("_").pop());
// -> 23

var str2 = "adifferenttest_153";
alert(str2.split("_").pop());
// -> 153

split()は、指定された区切り文字列を使用して、文字列を文字列の配列に分割します。
pop()は、配列から最後の要素を削除し、その要素を返します。


25
私のCプログラマーは、この単純な分割/ポップ操作で作成および破棄されたオブジェクトの数に夢中です:)おそらく:配列、2文字列、別の配列、別の文字列。
Gui13 2013年

11
@xgbi:ええ、JavaScriptとCの開発者はかなり異なる哲学を持っていますが;-)
Andy E

3
の前と後の2つの要素を持つ配列を作成するalert(str.split("_")[1]);ため、使用の可能性を回答に追加できます。これは実際に私が探していたものでしたが、あなたの答えは私がそこにたどり着くのを助けました^^.split[0]"_"[1]
フェルナンドシルバ

1
@FernandoSilva次に、「_」が2つ以上ある場合、3つのアイテム配列を取得し、3番目の配列も使用/削除できるとしましょう。ところで、+ 1。まさに私が探していたもの。
ライトサブリック2015

@TheLightSabrixは、それが機能していることを確認します。テキストで説明するよりもはるかに簡単です。jsbin.com/keleguzacu/edit?js,console
フェルナンドシルバ

42

文字列が常に'test_':で始まると仮定します。

var str = 'test_23';
alert(str.substring('test_'.length));

5
テストで始まらない場合はどうなりますか?
NullVoxPopuli 2010

replaceを使用しますが、複数回発生する場合は機能しません。str.replace( "test _"、 ""); 「test_」のすべての出現が削除された新しい文字列を返すため、1つの出現のみが保証されている場合は、問題ないはずです。ただし、複数ある場合は、str = str.substring(0、str.indexOf( "test_)" + str.substring(str.indexOf( "test _")+ 5、str.length);を使用します。誰もがそれを越えていた場合、古いポストがありますが、かもしれないのヘルプ少なくとも1人はどこか。
ジョージ・ザビエル

23

文字列の一部を削除したい場合

let str = "test_23";
str.replace("test_", "");
// 23

文字列の一部を置き換えたい場合

let str = "test_23";
str.replace("test_", "student-");
// student-23

19

私が考える最も簡単な方法は次のとおりです。

var s = yourString.replace(/.*_/g,"_");

9
string = "test_1234";
alert(string.substring(string.indexOf('_')+1));

文字列にアンダースコアがない場合でも機能します。http://jsbin.com/でお試しください


4
これはオーバーヘッドが少ないですが、AndyEの答えよりも多くのコードがあります。どちらも機能しますが、私はこの方法を好みます。
palswim 2010

0
string = "removeTHISplease";
result = string.replace('THIS','');

replaceは、いくつかの独自の関数のように同じことを行うと思います。私にとってこれはうまくいきます。


コードのみの回答は、ほとんどの場合、それらがどのように、そしてなぜ機能するかについての説明を追加することで改善できます。フォーマットは重要です。
JasonAller20年

少なくとも、replaceを使用しているオントップのものとは異なります。

0

"www."hrefから削除したかったので、次のようにしました。

const str = "https://www.example.com/path";

str.split("www.").join("");

// https://example.com/path
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.