文字列の最後の 2 文字を削除する簡単な方法は?
9 に答える
245に変換する245px
には、次を実行します。
parseInt('245px', 10);
先頭の数字のみが保持され、残りはすべて破棄されます。
使用する
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 になります
末尾に「px」を付けずにピクセル値を変換します。parseFloat を使用します。
parseFloat('245px'); // returns 245
注: parseInt を使用する場合、値が整数であれば正しい値になります。値が 245.50px のような 10 進数の場合、値は 245 に丸められます。
これはまさにあなたが求めることを行います: 文字列の最後の 2 文字を削除します:
s.substr(0, s.length-2);
驚くべきことに、部分文字列メソッドs.substr(0, s.length-2);
は実際には を削除するのにかなり高速ですpx
(はい、見た目はきれいではありません。スペースがある場合は残ります -- "250px" -> "250"
vs "250 px" -> "250 "
)。
スペースを考慮したい場合 (おそらくそうするべきです)、関数を使用すると実際にテスト.trim()
が遅くなり、メソッドが実際に優れたものになります。substr
parseInt
を使用することの追加の利点はparseInt(s, 10)
、型変換も取得し、それを数学関数にすぐに適用できることです。
したがって、最終的には、結果をどうするかによって大きく異なります。
- 表示のみの場合は、トリムなし
substr
でメソッドを使用するのがおそらく最善の策です。 - px のない値が別の値と同じかどうかを確認しようとしているだけの場合は、(スペースがあっても)次のようになるため、メソッド
s.substr(0, s.length-2) == 0
を使用するのsubstr
が最善です"250 " == 250
true
- スペースの可能性を説明したり、それを別の値に追加したり、それを使って何かを計算したりしたい場合は、
parseInt
ルートを検討することをお勧めします。
http://jsperf.com/remove-px-from-coord
jspref のテストではスペースが考慮されます。s.split('px')[0]
関数と関数も試しs.replace(/ *px/g, '')
ましたが、どちらも遅いことがわかりました。
追加のテスト ケースを自由に追加してください。
チェックhttp://www.w3schools.com/jsref/jsref_substr.asp あなたの場合は次のようになります
string.substr(0, string.length - 2)
substr()
現在はレガシー機能です。代わりに使用してください: (この場合substring()
、構文は同じです)
str.substring(0, str.length-2);
または、次を使用しますslice()
。
str.slice(0, -2);
slice()
ずっときれいに見えます、IMO。負の値は最後から数えます。