2017-07-15 16 views
1

私には、負の数、浮動小数点数を含む選択ボックスがあります。 どうやってそれを妥当性をもって検証するのですか?パセリの検証で負の浮動小数点数を検証する方法

<select class="form-control" data-parsley-pattern="^[0-9]*\.[0-9]{2}$" id="duration" name="duration"> 
    <option value="-1" >Not Strated</option> 
    <option value="0" >Just Strated</option> 
    <option value="1.6" >1.6 % Done</option> 
    <option value="2">2 % Done</option> 
    <option value="2.6">2.6 % Done</option> 
    <option value="3">3 % Done</option> 
    <option value="3.6">3.6 % Done</option> 
    <option value="4">4 % Done</option> 
    <option value="4.6">4.6 % Done</option> 
    <option value="5">5 % Done</option> 
    //And So on... 
</select> 

私はSOのいくつかの解決策を試しましたが、機能しませんでした。

data-parsley-pattern="^[0-9]*\.[0-9]{2}$" 

私はパセリで負のフロート番号を検証することが分かっソリューションです。

^-?[0-9]\d*(\.\d+)?$ 
+0

私はパセリのことを聞いたことがありません。しかし、あなたの正規表現は2つの末尾の数字を強制しているようです。あなたの番号の誰もそれを持っていません。これを試して、あなたのために動作するかどうかを確認してください。 https://regex101.com/r/i5qt3m/1 '^ [ - 0-9] * \。?[0-9] $' – Andreas

+0

@Andreas Sirあなたは答えにあなたの提案を加えることができます。ありがとう。 –

+1

これにいくつか変更を加えて答えを加えました。どちらがあなたに一番適しているか分かりません。私は彼らがかなり平等だと信じています。 – Andreas

答えて

2

パターンに欠落があります。
それは負の数を捕捉しなかったので、最初の "グループ"に - を追加しました。
追加しましたか?フロート部分をオプションにすることはできません。
移動しました。 []に追加して、0以上を可能にする*を追加しました。

^[-0-9]+?[\.0-9]*$

https://regex101.com/r/i5qt3m/2

OPは答えを見つけた:^-?[0-9]\d*(\.\d+)?$

+0

を検証するのを手伝ってください。負の数値ではなく浮動小数点数だけを検証しています。 –

+0

パーズレイ正規表現がどのように動作するかのドキュメントは見つかりません。しかし、私が「 - \」でエスケープされた例が、それが問題なのか何か分からないことが分かりました。 @always – Andreas

+0

'^ - ?[0-9] \ d *(\。\ d +)?$'この正規表現は現在動作しています。 –

関連する問題