その値としてdata-123
を持つ文字列を持っています。 jQueryまたはJavaScriptでdata-
を残したまま、文字列から123
を削除して削除する方法を教えてください。
JQueryは必要ありません。
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
すべてのオカレンスを破棄するには、次のようにします。
var ret = "data-123".replace(/data-/g,'');
PS:replace関数は新しい文字列を返し、元の文字列は変更されないままであるため、replace()呼び出しの後に関数の戻り値を使用してください。
これはjQueryとは関係ありません。これにはJavaScriptのreplace
関数を使用できます。
var str = "data-123";
str = str.replace("data-", "");
この関数に正規表現を渡すこともできます。次の例では、数値以外のすべてを置き換えます。
str = str.replace(/[^0-9\.]+/g, "");
前述のように"data-123".replace('data-','');
を使用できますが、文字列が"data-123data-"
のようなものであれば、replace()
は一致するテキストの _ first _ インスタンスのみを置き換えます
"data-123data-".replace('data-','');
最初に一致したテキストのみを置き換えます。そしてあなたの出力は"123data-"
になります
したがって、テキストのすべての一致を文字列で置き換えたい場合は、次のようなg
フラグを持つ正規表現を使用する必要があります。
"data-123data-".replace(/data-/g,'');
そしてあなたの出力は"123"
になります
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"
普通のJavaScriptで十分です - jQueryはそのような単純な作業には必要ありません。
var myString = "data-123";
var myNewString = myString.replace("data-", "");
参照: MDNに関する.replace()
のドキュメント 追加情報と使用法については/。
例: -
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
うまくいけば、これはあなたのために働くでしょう。
私が作ったこの小さな機能はいつも私のために働きました:)
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!!
私はそれが最善ではないことを知っていますが、それはいつも私のために働いてきました:)
私は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
match()
とNumber()
を使ってnumber
変数を返す:
Number(("data-123").match(/\d+$/));
// strNum = 123
これが上記のステートメントが行うことです。
str.match(/\d+$/)
- str
の最後に、任意の長さの数字との一致を含む配列を返します。この場合、単一の文字列項目['123']
を含む配列を返します。Number()
- それを数値型に変換します。 .match()
から返される配列には単一の要素が含まれるため、Number()
は数値を返します。str.split('Yes').join('No');
これは、その特定の文字列のすべての出現箇所を元の文字列から置き換えます。