10 進数を検証するために JavaScript で正規表現が必要です。
小数点以下 2 桁まで許可する必要があります。たとえば、許可する必要がありますが、許可10.89
しないでください10.899
。
また、ピリオド ( ) を 1 つだけ許可する必要があります.
。たとえば、許可する必要がありますが、許可10.89
しないでください10.8.9
。
10 進数を検証するために JavaScript で正規表現が必要です。
小数点以下 2 桁まで許可する必要があります。たとえば、許可する必要がありますが、許可10.89
しないでください10.899
。
また、ピリオド ( ) を 1 つだけ許可する必要があります.
。たとえば、許可する必要がありますが、許可10.89
しないでください10.8.9
。
次の式を試してください:^\d+\.\d{0,2}$
小数点以下の桁数をオプションにしたい場合は、次の式を使用できます。^\d+(\.\d{1,2})?$
編集: Javascript で文字列の一致をテストするには、次のスニペットを使用します。
var regexp = /^\d+\.\d{0,2}$/;
// returns true
regexp.test('10.5')
^\d+(\.\d{1,2})?$
できるようになります:
244
10.89
9.5
許可しません:
10.895
10.
10.8.9
使えることが分かった
^\d+(\.\d+)?$
小数点以下 2 桁以上。
小数点以下2桁までの数字:
/^\d+(?:\.\d{1,2})?$/
これはうまくいくはずです。試してみてください:)
JavaScript 言語を使用して、Web ページのテキスト入力要素の値のクロスブラウザー フィルターの私のプロジェクトを参照してください:入力キー フィルター。値を整数、浮動小数点数としてフィルター処理するか、電話番号フィルターなどのカスタム フィルターを作成できます。10 進ポインターを使用して浮動小数点数を入力し、10 進ポインターの後の 2 桁に制限するカスタム フィルターの例を参照してください。
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Input Key Filter Test</title>
<meta name="author" content="Andrej Hristoliubov anhr@mail.ru">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!-- For compatibility of IE browser with audio element in the beep() function.
https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible -->
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<link rel="stylesheet" href="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.css" type="text/css">
<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/Common.js"></script>
<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.js"></script>
</head>
<body>
<h1>Float field</h1>
<input id="Float"
onchange="javascript: onChangeFloat(this)"
onblur="inputKeyFilter.isNaN(parseFloat(this.value), this);"
/>
<script>
function CreateFloatFilterCustom(elementID, onChange, onblur){
try{
inputKeyFilter.Create(elementID
, onChange
, function(elementInput, value){//customFilter
if(value.match(/^(-?\d*)((\.(\d{0,2})?)?)$/i) == null){
inputKeyFilter.TextAdd(isRussian() ?
"Допустимый формат: -[0...9].[0...9] или -[0...9]e-[0...9]. Например: -12.34 1234"
: "Acceptable formats: -[0...9].[0...9] or -[0...9]e-[0...9]. Examples: -12.34 1234"
, elementInput);
return false;
}
return true;
}
, onblur
)
} catch(e) {
consoleError("Create float filter failed. " + e);
}
}
CreateFloatFilterCustom("Float");
function onChangeFloat(input){
inputKeyFilter.RemoveMyTooltip();
var elementNewFloat = document.getElementById("NewFloat");
var float = parseFloat(input.value);
if(inputKeyFilter.isNaN(float, input)){
elementNewFloat.innerHTML = "";
return;
}
elementNewFloat.innerHTML = float;
}
</script>
New float: <span id="NewFloat"></span>
</body>
</html>
入力キーフィルターの私のページの例も参照してください
次のような正規表現を試してください。
(?=[^\0])(?=^([0-9]+){0,1}(\.[0-9]{1,2}){0,1}$)
許可: 1、10.8、10.89、.89、0.89、1000
許可されていません: 20. , 50.89.9, 12.999, ., Null 文字 これは正の数に対して機能することに注意してください
function CheckValidAmount() {
var amounttext = document.getElementById('txtRemittanceNumber').value;
if (!(/^[-+]?\d*\.?\d*$/.test(amounttext))){
alert('Please enter only numbers into amount textbox.')
document.getElementById('txtRemittanceNumber').value = "10.00";
}
}
これは、小数点以下の桁数が任意で小数点以下のない 10 進数を受け取る関数です。
ありがとう ... :)
これは機能しますか?
[0-9]{2}.[0-9]{2}