次のように、CSS形式に従って文字列から数値を取得しようとしています。
str == "50.1px"
sz = str.match(/+([0-9]|\.)/)
エスケープしない限り、式について文句を言います+
が、それではsz
nullになります。削除する+
と、最初の桁のみが返されます。私は完全に困惑しています。
次のように、CSS形式に従って文字列から数値を取得しようとしています。
str == "50.1px"
sz = str.match(/+([0-9]|\.)/)
エスケープしない限り、式について文句を言います+
が、それではsz
nullになります。削除する+
と、最初の桁のみが返されます。私は完全に困惑しています。
そのためにはJavascript.parseFloat()
を使用する必要があります。末尾の文字が自動的に削除されます。
sz = parseFloat('50.1px'); // 50.1
MDN:
parseFloatは、引数である文字列を解析し、浮動小数点数を返します。符号(+または-)、数字(0-9)、小数点、または指数以外の文字に遭遇した場合、その時点までの値を返し、その文字と後続のすべての文字を無視します。先頭と末尾のスペースは許可されます。
+
次のように、式の最後にthe を付ける必要があります。
([0-9])+
したがって、次を使用できます。
sz = str.match(/([0-9.])+/)[0]
どちらかを使用できますparseFloat
また
とAPI を使用して、選択した要素の高さと幅を取得できますjQuery
。これらの関数は、対応する高さ width を px サフィックスなしで返します。.height()
.width()
正規表現を使うのが好きなら、これが正しい表現です
var pattern = /[0-9.]+/