1

私はそのようないくつかのテキスト行を持っています:

  • vt_wildshade2^508^508
  • vt_aileurs2^1188^1188
  • ...
  • vt_high2^13652^13652

2番目の「^」の後の最後の数字をjQueryで選択し、他の部分を削除することは可能ですか?

つまり、次のように各行の最後の番号を保持します。

  • 508
  • 1188
  • ...
  • 13652

クラス/ID/特定のテキストを選択する方法は知っていますが、ここで電話を切ります。少し早いですがお礼を

4

3 に答える 3

1
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

于 2012-07-05T20:07:28.603 に答える
1

フォーマットが常に同じである場合は、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

他の回答者が説明したように、形式が常に同じではない場合は、正規表現を使用して、必要な形式で必要なデータを見つける必要があります。

このデータがどのように入ってくるのかわかりません。スクリプトを実行する前に、このデータがどのように表示されるかを明確にしていただけますか?

于 2012-07-05T20:05:18.837 に答える
0

あなたが持っている場合:

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 です。

于 2012-07-05T20:06:46.277 に答える