1

次のように、CSS形式に従って文字列から数値を取得しようとしています。

str == "50.1px"

sz = str.match(/+([0-9]|\.)/)

エスケープしない限り、式について文句を言います+が、それではsznullになります。削除する+と、最初の桁のみが返されます。私は完全に困惑しています。

4

3 に答える 3

5

そのためにはJavascript.parseFloat()を使用する必要があります。末尾の文字が自動的に削除されます。

sz = parseFloat('50.1px');  // 50.1

MDN:

parseFloatは、引数である文字列を解析し、浮動小数点数を返します。符号(+または-)、数字(0-9)、小数点、または指数以外の文字に遭遇した場合、その時点までの値を返し、その文字と後続のすべての文字を無視します。先頭と末尾のスペースは許可されます。

于 2012-07-30T18:10:06.373 に答える
1

+次のように、式の最後にthe を付ける必要があります。

([0-9])+

したがって、次を使用できます。

sz = str.match(/([0-9.])+/)[0]

于 2012-07-30T18:10:44.080 に答える
1

どちらかを使用できますparseFloat

また

とAPI を使用して、選択した要素の高さと幅を取得できますjQuery。これらの関数は、対応する高さ width を px サフィックスなしで返します。.height().width()

正規表現を使うのが好きなら、これが正しい表現です

var pattern = /[0-9.]+/
于 2012-07-30T18:26:33.337 に答える