文字列の最後の2文字を削除する簡単な方法は何ですか?
回答:
使用する
var size = parseInt('245px', 10);
ここで、10は、10進値に解析することを定義する基数です。parseInt
parseInt()関数は文字列を解析し、整数を返します。
署名は parseInt(string, radix)
2番目の引数は、parseIntに基数10のナンバリングシステムを使用するように強制します。
どうして?$(this).attr( 'num')が "08"の場合、基数のないparsIntは0になります。
末尾に「px」がないピクセル値を変換します。parseFloatを使用します。
parseFloat('245px'); // returns 245
注:parseIntを使用する場合、値が整数であれば値は正しくなります。値が245.50pxのような小数の場合、値は245に丸められます。
parseFloat()
よう基数を取ることはありませんparseInt()
(参照developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...&stackoverflow.com/質問/ 8555649 /…)
驚いたことに、部分文字列メソッドs.substr(0, s.length-2);
は実際には削除するのにかなり高速ですpx
(はい、見た目はそれほどきれいではなく、スペースがある場合は残ります"250px" -> "250"
-vs "250 px" -> "250 "
)。
スペースを考慮したい場合(おそらくそうすべきです)、.trim()
関数を使用すると、実際にはsubstr
テストが十分に遅くparseInt
なり、メソッドが実際に優れたものになります。
を使用することの追加の利点はparseInt(s, 10)
、型変換も取得し、すぐに数学関数への適用を開始できることです。
したがって、最終的には、結果をどのように処理するかによって異なります。
substr
方法を使用するのがおそらく最善の策です。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, '')
関数と関数を試しましたが、どちらも遅いことがわかりました。
テストケースを追加してください。
parseInt()は良いオプションですが、それでも他の多くのソリューションがあるのは良いことです
var pixels = '245px';
Number(pixels.replace('px', ''));
http://www.w3schools.com/jsref/jsref_substr.aspを確認してください 。あなたの場合は次のようになります。
string.substr(0, string.length - 2)
parseInt('245px', 10)