36

10 進数を検証するために JavaScript で正規表現が必要です。

小数点以下 2 桁まで許可する必要があります。たとえば、許可する必要がありますが、許可10.89しないでください10.899

また、ピリオド ( ) を 1 つだけ許可する必要があります.。たとえば、許可する必要がありますが、許可10.89しないでください10.8.9

4

12 に答える 12

50

次の式を試してください:^\d+\.\d{0,2}$小数点以下の桁数をオプションにしたい場合は、次の式を使用できます。^\d+(\.\d{1,2})?$

編集: Javascript で文字列の一致をテストするには、次のスニペットを使用します。

var regexp = /^\d+\.\d{0,2}$/;

// returns true
regexp.test('10.5')
于 2012-04-05T06:48:34.917 に答える
42
^\d+(\.\d{1,2})?$

できるようになります:

  1. 244
  2. 10.89
  3. 9.5

許可しません:

  1. 10.895
  2. 10.
  3. 10.8.9
于 2012-04-05T06:49:46.967 に答える
4

使えることが分かった

^\d+(\.\d+)?$

小数点以下 2 桁以上。

于 2016-04-07T19:41:08.197 に答える
4

小数点以下2桁までの数字:

/^\d+(?:\.\d{1,2})?$/

これはうまくいくはずです。試してみてください:)

于 2013-12-10T09:54:59.763 に答える
3

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>

入力キーフィルターの私のページの例も参照してください

于 2015-07-31T04:06:20.623 に答える
2

次のような正規表現を試してください。

(?=[^\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 文字 これは正の数に対して機能することに注意してください

于 2016-08-05T06:50:36.653 に答える
0
 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 進数を受け取る関数です。

ありがとう ... :)

于 2016-09-06T18:39:10.893 に答える
-3

これは機能しますか?

[0-9]{2}.[0-9]{2}
于 2012-04-05T06:48:39.160 に答える