88

文字列の最後の 2 文字を削除する簡単な方法は?

4

9 に答える 9

199

245に変換する245pxには、次を実行します。

parseInt('245px', 10);

先頭の数字のみが保持され、残りはすべて破棄されます。

于 2011-02-01T08:10:50.563 に答える
40

使用する

var size = parseInt('245px', 10);

ここで、10 は 10数値への解析を定義する基数ですparseInt

parseInt を使用しますが、基数なしで parseInt を使用しないでください

parseInt() 関数は文字列を解析し、整数を返します。

サインはparseInt(string, radix)

2 番目の引数は、10 進法を使用するように parseInt に強制します。

  • ParseInt() のデフォルトの入力タイプは 10 進数 (基数 10) です。
  • 数値が「0」で始まる場合は、8 進数 (基数 8) と見なされます。
  • 「0x」で始まる場合は16進数とみなされます

なぜ?$(this).attr('num') が「08」になる場合、基数のない parsInt は 0 になります

于 2011-02-01T08:13:26.780 に答える
22

末尾に「px」を付けずにピクセル値を変換します。parseFloat を使用します。

parseFloat('245px'); // returns 245      

注: parseInt を使用する場合、値が整数であれば正しい値になります。値が 245.50px のような 10 進数の場合、値は 245 に丸められます。

于 2014-02-21T04:08:48.607 に答える
17

これはまさにあなたが求めることを行います: 文字列の最後の 2 文字を削除します:

s.substr(0, s.length-2);
于 2011-02-01T08:12:46.663 に答える
5

驚くべきことに、部分文字列メソッドs.substr(0, s.length-2);は実際には を削除するのにかなり高速ですpx(はい、見た目はきれいではありません。スペースがある場合は残ります -- "250px" -> "250"vs "250 px" -> "250 ")。

スペースを考慮したい場合 (おそらくそうするべきです)、関数を使用すると実際にテスト.trim()が遅くなり、メソッドが実際に優れたものになります。substrparseInt

を使用することの追加の利点はparseInt(s, 10)、型変換も取得し、それを数学関数にすぐに適用できることです。

したがって、最終的には、結果をどうするかによって大きく異なります。

  • 表示のみの場合は、トリムなしsubstrでメソッドを使用するのがおそらく最善の策です。
  • px のない値が別の値と同じかどうかを確認しようとしているだけの場合は、(スペースがあっても)次のようになるため、メソッドs.substr(0, s.length-2) == 0を使用するのsubstrが最善です"250 " == 250true
  • スペースの可能性を説明したり、それを別の値に追加したり、それを使って何かを計算したりしたい場合は、parseIntルートを検討することをお勧めします。

http://jsperf.com/remove-px-from-coord

jspref のテストではスペースが考慮されます。s.split('px')[0]関数と関数も試しs.replace(/ *px/g, '')ましたが、どちらも遅いことがわかりました。

追加のテスト ケースを自由に追加してください。

于 2014-07-20T21:14:44.217 に答える
0

チェックhttp://www.w3schools.com/jsref/jsref_substr.asp あなたの場合は次のようになります

string.substr(0, string.length - 2)
于 2011-02-01T08:13:20.693 に答える
0

substr()現在はレガシー機能です。代わりに使用してください: (この場合substring()、構文は同じです)

str.substring(0, str.length-2);

または、次を使用しますslice()

str.slice(0, -2);

slice()ずっときれいに見えます、IMO。負の値は最後から数えます。

于 2020-06-23T16:38:57.617 に答える