私が持っています
var id="ctl03_Tabs1";
JavaScriptを使用して、最後の5文字または最後の文字を取得するにはどうすればよいですか?
私が持っています
var id="ctl03_Tabs1";
JavaScriptを使用して、最後の5文字または最後の文字を取得するにはどうすればよいですか?
回答:
編集:他の人が指摘したように、のslice(-5)
代わりにを使用してくださいsubstr
。ただし、.split().pop()
別のアプローチについては、この回答の下部にあるソリューションを参照してください。
元の答え:
プロパティ.substr()
と組み合わせてJavaScript文字列メソッドを使用する必要があり.length
ます。
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
これは、id.length-5で始まる文字を取得し、.substr()の2番目の引数が省略されているため、文字列の最後まで続きます。
.slice()
他の人が以下で指摘している方法を使用することもできます。
アンダースコアの後の文字を探すだけの場合は、次のように使用できます。
var tabId = id.split("_").pop(); // => "Tabs1"
これにより、文字列がアンダースコア上の配列に分割され、配列から最後の要素(必要な文字列)が「ポップ」されます。
.split().pop()
と、パフォーマンスに大きな影響があります。これがループで使用しているものであり、パフォーマンスが重要な場合は、このことを覚えておく必要があります。
.split().pop()
は、毎秒500万の操作です。それは、パフォーマンスの問題になるまで、パフォーマンスの問題ではありません。;)
slice
この時点でより良いオプションであることを言及するために私の回答を編集しました。
slice
またはsubstr
数値(int)を使用している場合は、まずそれを文字列に変換します。例えばmyVar.toString().slice(-5)
使用しないでください.substr()
。.slice()
クロスブラウザ互換であるため、代わりにこのメソッドを使用してください(IEを参照)。
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
slice()
参照:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
_Tabs15
?slice(-5)はつかむだけabs15
ですか?スプリット/ポップはさまざまな長さではるかにうまく機能します...
あなたは使用することができますSUBSTR()メソッドを最後のn文字を取得するために、負の開始位置と。たとえば、これは最後の5つを取得します。
var lastFiveChars = id.substr(-5);
文字列を配列として扱うことができるため、最後の文字を取得するのは簡単です。
var lastChar = id[id.length - 1];
文字列のセクションを取得するには、substr関数またはsubstring関数を使用できます。
id.substr(id.length - 1); //get the last character
id.substr(2); //get the characters from the 3rd character on
id.substr(2, 1); //get the 3rd character
id.substr(2, 2); //get the 3rd and 4th characters
差substr
とは、substring
第二の(オプション)のパラメータを処理する方法です。ではsubstr
、インデックスからの文字数です(最初のパラメーター)。ではsubstring
、文字のスライスが終了する場所のインデックスです。
Substr関数を使用すると、マイナス記号を使用して最後の文字を取得できます。
var string = "hello";
var last = string.substr(-1);
それは非常に柔軟です。例えば:
// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"
最後の文字または任意の文字を既知の位置にしたい場合は、単に文字列を配列として扱うことができます!-文字列はJavaScriptで反復可能です-
Var x = "hello_world";
x[0]; //h
x[x.length-1]; //d
ただし、複数のキャラクターが必要な場合は、スプライスを使用するのが効果的です
x.slice(-5); //world
あなたの例について
"rating_element-<?php echo $id?>"
idを抽出するには、split + popを簡単に使用できます
Id= inputId.split('rating_element-')[1];
これはIDを返します。「rating_element」の後にIDがなかった場合は未定義になります:)
サブストリングを別のストリングの末尾と比較し、その結果をブール値として使用すると仮定すると、これを実現するためにStringクラスを拡張できます。
String.prototype.endsWith = function (substring) {
if(substring.length > this.length) return false;
return this.substr(this.length - substring.length) === substring;
};
次のことを実行できます。
var aSentenceToPonder = "This sentence ends with toad";
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);
私はこの質問を見つけ、いくつかの調査を通じて、これが最後の文字を取得する最も簡単な方法であることがわかりました。
他の人が言及し、最後の5を取得するための完全性のために追加したように:
var last5 = id.substr(-5);
これは、文字列の最後の文字である場合、コンマを削除します。
var str = $("#ControlId").val();
if(str.substring(str.length-1)==',') {
var stringWithoutLastComma = str.substring(0,str.length-1);
}
私は実際には次の問題があり、これは上記の回答の助けを借りてどのように解決しましたが、入力要素からidを抽出する際の異なるアプローチです。
提出された入力を添付しました
id="rating_element-<?php echo $id?>"
そして、そのボタンがクリックされたときに、id(数値)またはphp ID ($ id)のみを抽出します。
だからここで私は何をします。
$('.rating').on('rating.change', function() {
alert($(this).val());
// console.log(this.id);
var static_id_text=("rating_element-").length;
var product_id = this.id.slice(static_id_text); //get the length in order to deduct from the whole string
console.log(product_id );//outputs the last id appended
});
最後の5
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
最終
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1)
alert(res);
charAt
しsubstr
ます。これで最後から5番目charAt
が取得されます。