文字列の最後の2文字を選択する方法


193

数字でも文字でも、変数から最後の2文字を選択する必要があります。

例えば:

var member = "my name is Mate";

member変数の文字列の最後の2文字を表示したいと思います。

回答:



23

これを試してくださいsubstring。で終了インデックスを指定する必要がないことに注意してください。

var characters = member.substr(member.length -2);

あなたの元の答えはおそらくより適切でした。MDNのsubstrドキュメントによると、「MicrosoftのJScriptは開始インデックスの負の値をサポートしていません。」

23

編集:2020:string.slice(-2)他の人が言うように使用してください-以下を参照してください。

今2016はちょうどstring.substr(-2)トリックを行うべきです(部分文字列(!)ではありません)

MDNから取得

構文

str.substr(start[, length])

パラメーター

開始

文字の抽出を開始する場所。負の数が指定された場合、strLength + startとして扱われます。ここで、strLengthは文字列の長さです(たとえば、startが-3の場合、strLength-3として扱われます)。抽出する文字数。

編集2020

MDNさんのコメント

警告:String.prototype.substr(…)は厳密には非推奨ではありませんが(「Web標準から削除された」のように)、これはレガシー関数と見なされ、可能であれば回避する必要があります。これはコアJavaScript言語の一部ではなく、将来削除される可能性があります。


1
"MicrosoftのJScriptは開始インデックスの負の値をサポートしていません。この機能をJScriptで使用するには、次のコードを使用できます..."- developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…(スライスについては、ポリフィルはありません:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
George Birbilis

JScriptはブラウザーの内部にはなく、主にWindows Script Hostオートメーション(VBScriptと同様)を操作するためのスクリプト言語であるため、そのようなメソッドが含まれていないのは当然のことです。不可解な構文。とにかく、コメントは負のインデックスdocs.microsoft.com/en-us/previous-versions/windows/…を
George Birbilis

9

次の例ではslice()、負のインデックスを使用しています

var str = 'my name is maanu.';
console.log(str.slice(-3));     // returns 'nu.' last two
console.log(str.slice(3, -7)); // returns 'name is'
console.log(str.slice(0, -1));  // returns 'my name is maanu'


5

あなたが試すことができます

member.substr(member.length-2);

開始インデックスからmember.lengthを逃しました:)
mattytommo

ああクール、私は反映するように私の答えを更新しました、TJとIbuに感謝します:)
。TJ

1
@TJCrowder:開始位置としての負のインデックスがIE8以下では機能しないことを確認してください。

1
@amnotiam:知ってありがとう、ありがとう!私はちょうどテストし、そして案の定、しませんでした IE7やIE8の仕事(とそうおそらくIE6で動作しないでしょう)。標準モードのIE9は問題ありませんでした(ただし、互換性はありません)。私はを決して使用していません。今ではsubstr、いくつかの独善的なgitがそのために苦労したスレッドを見つけることができれば幸いです(特に、負のインデックスを使用しない)。これで正当化できます!:-)
TJクラウダー


2

これを行うには、jQueryではなく、部分文字列を使用する必要があります。

次のようなものを試してください:

member.substring(member.length - 2, member.length)

W3Schools(公式ではありませんが、役立つ場合があります):http : //www.w3schools.com/jsref/jsref_substring.asp

コメント投稿者の要求に応じてMDNリンクを追加:https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
w3foolsではなく、MSDNやMDNなどの公式ドキュメントへのリンクを提供してください:)
jbabey

w3schoolsは「公式」ではありませんが、一般的に信頼できる情報を持っています。MSDNは公式ですが、IE固有であり、FirefoxやSafariなどとは何の関係もありません
Matt

これを投稿するときにコメントにリンクを追加しました
Matt

1
var member = "my name is maanu";

var answer=member.substring(0,member.length - 2);

alert(answer);

1
コードは何をしますか?これが達成することの説明を書き込んでください。
DNKROZ 2014年

3
公平を期すために、質問はコードが何をする必要があるかについて非常に具体的であるため、(本質的に)1行のコードで構成される回答は自明です。
anaximander 14年

1
コード出力は 'nu'になります。単語から最後の2文字を取り出します。
Bijuの2014

7
コード出力は「私の名前はmaa」(最後の2文字を除くすべて)になるように思えますが、正しく理解していれば、質問の質問とは異なります。
ewino 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.