文字列の最後の2文字を削除する簡単な方法は何ですか?
変換する 245px
245で実行するだけです:
parseInt('245px', 10);
先行番号のみを保持し、残りはすべて破棄します。
つかいます
_var size = parseInt('245px', 10);
_
ここで、10はradixであり、parseInt
がdecimal値
ParseInt()関数は文字列を解析し、整数を返します。
署名はparseInt(string, radix)
です
2番目の引数は、parseIntにベース10の番号付けシステムを使用するように強制します。
どうして? $(this).attr( 'num')が「08」の場合、基数のないparsIntは0になります
これはまさにあなたが求めることをします:文字列の最後の2文字を削除します:
s.substr(0, s.length-2);
最後に「px」なしでピクセル値を変換します。 parseFloatを使用します。
parseFloat('245px', 10);//returns 245
注:parseIntを使用する場合、値が整数の場合、値は正しくなります。値が245.50pxのような10進数の場合、値は245に丸められます
驚くべきことに、部分文字列メソッドs.substr(0, s.length-2);
は、実際にpx
を削除するためにかなり高速です(そう、見た目はそれほどきれいではなく、スペースがある場合は残ります-_"250px" -> "250"
_ vs _"250 px" -> "250 "
_)。
スペースを考慮したい場合(おそらくそうする必要があります)、.trim()
関数を使用すると、substr
テストが実際に遅くなり、parseInt
メソッドが実際に優れたものになります。
parseInt(s, 10)
を使用することの追加の利点は、型変換も取得し、それをすぐに数学関数に適用できることです。
そのため、最終的には、結果をどう処理するかにかかっています。
substr
メソッドwithoutを使用して、おそらくトリムが最善の策です。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)
私は好む:"245px".replace(/px/,'')*1
入力を囲んでいないためです。
また、*1
は、intにキャストするためのものです。