web-dev-qa-db-ja.com

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

その値としてdata-123を持つ文字列を持っています。 jQueryまたはJavaScriptでdata-を残したまま、文字列から123を削除して削除する方法を教えてください。

402
Michael Grigsby

JQueryは必要ありません。

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

ドキュメント。


すべてのオカレンスを破棄するには、次のようにします。

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

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

866
Mathletics

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

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

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

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

前述のように"data-123".replace('data-','');を使用できますが、文字列が"data-123data-"のようなものであれば、replace()は一致するテキストの _ first _ インスタンスのみを置き換えます

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

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

デモ

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

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

そしてあなたの出力は"123"になります

DEMO2

42
laaposto

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"

デモ

25
m.r shojaei

普通のJavaScriptで十分です - jQueryはそのような単純な作業には必要ありません。

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

参照: MDNに関する.replace()のドキュメント 追加情報と使用法については/。

15
James Hill

例: -

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

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

14
Ranjit Kanojia

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

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!!

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

8
user8142790

私はC#(Sharp)String.Removeメソッドに慣れていました。 Javascriptでは、stringに対するremove関数はありませんが、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

8
user2133061

match()Number()を使ってnumber変数を返す:

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

// strNum = 123

これが上記のステートメントが行うことです。

  1. str.match(/\d+$/) - strの最後に、任意の長さの数字との一致を含む配列を返します。この場合、単一の文字列項目['123']を含む配列を返します。
  2. Number() - それを数値型に変換します。 .match()から返される配列には単一の要素が含まれるため、Number()は数値を返します。
6
Brett DeWoody
str.split('Yes').join('No'); 

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

4
ARC