2017-06-08 4 views
-1

私はdbが整数として来ると予想している入力フィールドを持っています。私が60と入力しても問題ありませんが、60.00はありません。私は^[0-9]+/のエクスポーションで検証のためにRegExpを行った。 60.asdass60.0320320dasdasdas.60などの入力に対してはうまく動作しますが、入力した場合は60.となり、真と評価され、検証が成功し、dbからエラーが発生します。この状況で私のregexをfalseに設定するにはどうすればいいですか?Regexはtrueに評価されますが、それは想定されていません

答えて

3

は、文字列のアンカー($)の終わりを追加します。

^[0-9]+$ 
+0

ありがとう!病気はそれを10分で受け入れる。 – Denisx

0

あなたがこれを使用することができます。アンカーを使用すると、完全な入力が指定された正規表現でない場合には失敗します。

^\d+$ 
0

残りの配列もテストし、テストのために文字列の開始と終了を使用することもできます。

function check() { 
 
    var element =document.getElementById('input'), 
 
     value = element.value; 
 
    
 
    element.style.color = /^\d+(\.\d+)*$/.test(value) ? '#000000': '#ff0000'; 
 
}
<input id="input" type="text" onkeyup="check()">

関連する問題