2016-07-11 2 views
0

jquery validationプラグインを使用しています。
私は価格入力を検証する必要があります。
自分のデータベース内の列は、フロート(7,2) であるので、私の価格はJQuery:validate price float(7,2)

  • 最大7つのコンマ せず数字または
  • 5(MAXなど)カンマの前の数値とカンマの後の2
を受け入れます

私はすでに私はトンを行う必要があり、このPHPコード

if (strstr($price, '.') && (strlen(substr(strrchr($price, "."), 1)) > 2 || strlen($price) > 8) ) { 
    echo "invalid format"; 
} 
elseif (!strstr($price, '.')) { 
    if(strlen($price) > 5) 
    { 
     echo "invalid format"; 
    } 
} 

とサーバー側の検証を行いましたクライアント側でjqueryの検証プラグインを使用して新しいメソッドを追加するのと同じ検証です。
しかし、私はそれを行うために真のreg式を見つけることができません。

更新

詳細な説明:私のような任意の数以下7桁受け入れる必要
(11 - 1234から1234567)を.. - ..および以下を有する任意の数の私はより任意の数以下に同意する必要があり、または: - ( - 12345.12 12.23 123.1)

+0

pattern属性を使用することができます

を更新しましたサーバー側の検証をスキップしないでくださいent。クライアントは嘘です。 –

+0

'/^\ d {7} $ /'と '/^\ d {5} \。\ d {2} $ /'に参加するだけで済みます。 – adeneo

+0

@MarcB:はい、もちろんです。すでにサーバー側の検証を行った:) – user6534060

答えて

1

更新

詳細な説明カンマの前に5桁の数字と以下の2桁のようなコンマの後同じ7 ( - 1234年から1212年1234567)のような数字.. - ..と(123.1から12345.12 - 12.23)のようなより 以下5桁のカンマの前と2桁 カンマの前に以下を有する任意の数

「と2桁コンマの後以下」ことべきだ「とコンマの前に以下の2桁」?


編集、あなたがクライアント側の検証は、ユーザーへの即時フィードバックのためのすべての罰金とダンディですRegExp\d{1,5},\d{1,2}|\d{1,7}

<form> 
 
    <input type="text" 
 
     pattern="\d{1,5},\d{1,2}|\d{1,7}" 
 
     title="a) any number less than or equal 7 digits; b) any number with less than or equal 5 digits before comma and less than or equal 2 digits after comma" 
 
     required /> 
 
    <input type="submit" /> 
 
</form>

+0

** RegExp \ d {5}、\ d {2} | \ d {7} **はいくらか更新が必要です。すべての場合(12または123,2または123456) のエラーメッセージを表示し、ちょうど2つのケース(1234567または12345,12)を受け入れます(最大値(7つの数字)または(カンマの前の5とカンマの後の2) ) – user6534060

+0

どういう意味ですか?有効な値はa)7桁です。またはb)5桁の後にカンマとそれに続く2桁の数字、はい? – guest271314

+0

はい、あなたのRegExpが受け入れるものは7桁か5桁かそれに続いて2桁ですか? – user6534060