簡體   English   中英

限制小數點前后'n'位的正則表達式

[英]Regular expression to restrict 'n' digits before and after decimal point

我需要一個正則表達式來限制小數點前 10 位和小數點后 2 位。 我試過這個

if (!(/^\d{1,10}(\.$|\.\d{1,2}$|$)/).test(value)) {
  event.preventDefault();
  event.stopPropagation();
}
<input id="input" type="number" />

它適用於輸入類型text 。但它不適用於類型 number。

工作小提琴

請幫我解決這個問題

這應該工作。

if(! (/^[0-9]{10}\.[0-9]{2}$/).test(1234567890.12)) {
}

只需在您的代碼中使用此正則表達式/^[0-9]{10}\\.[0-9]{2}$/來驗證值是否為小數點前的10位數字和小數點后的2位數字。

參量

  • oninput :檢測對input標簽的立即更改。
  • max :設置最大值。
  • min :設置最小值。
  • type :設置所需的input標簽類型。
  • value :設置當前值。
  • step :設置上升或下降的量。

 //(function(object){object.value=parseFloat(object.value).toFixed(2);})(this) //(function(object){var val=object.value;object.value=val.slice(0,val.indexOf('.')+3);})(this) 
 <input id="input" oninput="(function(object){object.value=parseFloat(object.value).toFixed(2);})(this)" type="number" value="0.00" step="0.01" min="0.00" max="9999999999.99" /> 

的jsfiddle

要限制小數點之前和之后的小數位,這應該起作用:

 function ValidateDecimalInputs(e) { var beforeDecimal =3; var afterDecimal = 2; $('#'+e.id).on('input', function () { this.value = this.value .replace(/[^\\d.]/g, '') .replace(new RegExp("(^[\\\\d]{" + beforeDecimal + "})[\\\\d]", "g"), '$1') .replace(/(\\..*)\\./g, '$1') .replace(new RegExp("(\\\\.[\\\\d]{" + afterDecimal + "}).", "g"), '$1'); }); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id = "textBox" onclick="ValidateDecimalInputs(this)"/> 

value=  (value.substr(0, value.indexOf(".")) + value.substr(value.indexOf("."), 2));

這將起作用,因為它將在“。”之前給出所有值。 並且“.”之后只有 2 個值

這對我有用,即使是數字類型。

查詢

$("body").on("keyup", ".patternCheck", function(){
        if(this.value.match(/^[0-9]{1,10}[.]{1}[0-9]{1,2}$/) == null)
        {
            $(this).val($(this).attr("pval"));
        }
        else
        {
            $(this).attr("pval", $(this).val());
        }
    });

HTML

<input type="number" value="0.0" pval="0.0" class="patternCheck">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM