私はそのようないくつかのテキスト行を持っています:
- vt_wildshade2^508^508
- vt_aileurs2^1188^1188
- ...
- vt_high2^13652^13652
2番目の「^」の後の最後の数字をjQueryで選択し、他の部分を削除することは可能ですか?
つまり、次のように各行の最後の番号を保持します。
- 508
- 1188
- ...
- 13652
クラス/ID/特定のテキストを選択する方法は知っていますが、ここで電話を切ります。少し早いですがお礼を
var string = 'vt_wildshade2^508^508',
number = string.match(/[0-9]+$/)[0];
console.log(number);
$
:文字列の終わりに一致します。
[0-9]
:数字と一致します。
+
:前の1回以上一致します。
*
:先行する0回以上を計算します。文字列の最後に数字が含まれているかどうかわからない場合は、に変更
できます。この場合は空の文字列になります。+
*
number
参照:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp
フォーマットが常に同じである場合は、javascript の String.split(delimiter) メソッドを使用して、文字列を '^' で配列に分割すると、次のような結果が返されます。
["vt_wildshade2", "508", "508"]
この場合、次のコードは行から最後のビットを取得します。
var str = "vt_wildshade2^508^508";
var numbers = str.split("^")[2];
参考のため:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split
他の回答者が説明したように、形式が常に同じではない場合は、正規表現を使用して、必要な形式で必要なデータを見つける必要があります。
このデータがどのように入ってくるのかわかりません。スクリプトを実行する前に、このデータがどのように表示されるかを明確にしていただけますか?
あなたが持っている場合:
vt_wildshade2^508^508
言う:
var theText = $('p').text();
したがって、次と同等です。
var theText = 'vt_wildshade2^508^508';
最終的な「508」テキストは次の方法で取得できます。
var finalNumber = theText.split('^')[2];
そして、数値にする必要がある場合は、次のようになります。
var finalNumber = (theText.split('^').length > 2) ? parseInt(theText.split('^')[2], 10) : -1;
3 番目の数字がない場合、デフォルトは上記のコードの -1 です。