文字列からテキストを削除する方法は?


回答:


1157

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

ドキュメント。


破棄されるすべてのオカレンスについては、以下を使用します。

var ret = "data-123".replace(/data-/g,'');

PS:replace関数は新しい文字列を返し、元の文字列は変更されないままにするため、replace()呼び出しの後に関数の戻り値を使用します。


複数の式を置き換える方法は?複数の.replace呼び出しを使用する必要がありますか?
Dror Bar

124

これはjQueryとは何の関係もありません。replaceこれにはJavaScript 関数を使用できます。

var str = "data-123";
str = str.replace("data-", "");

この関数に正規表現を渡すこともできます。次の例では、数値以外のすべてを置き換えます。

str = str.replace(/[^0-9\.]+/g, "");

正規表現が何をするのか説明してもらえますか?0-9指示された場合、数字以外の文字列を置き換える理由がわかりません。
rotimi-best

60

あなたは使用することができます"data-123".replace('data-','');ように述べたように、しかし、replace()唯一の置き換えFIRST一致するテキストのインスタンスを、あなたの文字列のようなものだった場合、"data-123data-"その後、

"data-123data-".replace('data-','');

最初に一致したテキストのみを置き換えます。そしてあなたの出力は"123data-"

デモ

したがって、テキストのすべての一致を文字列に置き換える場合はg、次のようなフラグを使用して正規表現を使用する必要があります。

"data-123data-".replace(/data-/g,'');

そしてあなたの出力は "123"

デモ2


28

あなたはslice()を使用することができますそれは開始から終了まで(エンドポイントを含む)の間に文字を回収します

   string.slice(start , end);

これがどのように機能するかを示すいくつかの例です:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

デモ



17

例:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

うまくいけば、これはあなたのために働くでしょう。


11

C#(シャープ)のString.Removeメソッドに慣れていました。JavaScriptには、文字列の削除機能はありませんが、substr関数はあります。文字列から文字を削除するには、substr関数を1回または2回使用できます。次の関数を作成して、c#メソッドが最初にString.Remove(int startIndex)をオーバーロードするように、開始インデックスから文字列の末尾までの文字を削除できます。

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

または、c#メソッドの2番目のオーバーロードString.Remove(int startIndex、int count)と同じように、開始インデックスとカウントで文字を削除する次の関数を作成することもできます。

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

そして、あなたはあなたのニーズのためにこれらの2つの機能またはそれらの1つを使用することができます!

例:

alert(Remove("data-123", 0, 5));

出力:123


9

私が作ったこの小さな機能はいつも私のために働いてきました:)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

私はそれが最高ではないことを知っていますが、それはいつも私のために働いてきました:)


あなたはあなたの答えで文字列の置換関数がどのように機能するかを示していますが、実際に文字列の置換関数を使用するだけの方があなたのコードよりもはるかに単純で簡単なコードです!

9
str.split('Yes').join('No'); 

これにより、その特定の文字列のすべての出現箇所が元の文字列から置き換えられます。


8

match()and Number()を使用してnumber変数を返す:

Number(("data-123").match(/\d+$/));

// strNum = 123

上記のステートメントが行うことは次のとおりです...

  1. str.match(/\d+$/)-の末尾にある任意の長さの数値との一致を含む配列を返しますstr。この場合、単一の文字列アイテムを含む配列を返します['123']
  2. Number()-数値型に変換します。から返される配列に.match()は単一の要素Number()が含まれているため、数値が返されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.