Javascript正则表达式问题,在小数点前加零,我输入小数

时间:2016-02-19 14:53:23

标签: javascript regex

正在进行金额验证:

/^(([1-9]\d{0,8})(\.\d{0,2})?|(\.\d{0,2})?)/g;

这个正则表达式适用于这些条件:

  1. 仅接受一个小数点
  2. 在十进制之前接受9位数字和2位数后。
  3. 我也给了OR(|)条件,它在开头接受小数点,之后它只接受2位数。
  4. 有没有人告诉我,如果我在开头输入小数点,它会在小数点前自己添加一个零(0)作为前缀。

2 个答案:

答案 0 :(得分:0)

您需要的是一个事件处理程序,如下所示。如果你把"。"并输入一些数字,它将以" 0"为前缀。现在这包括9位数的验证 - 。 - 2位数



function addZero(handle) {
    if (handle.value[0]==".") {
       handle.value = "0"+handle.value;
    }
}

function checkAmount() {
    var curAmt = document.getElementById("amount").value;
    if (!/^(([0-9]{0,9}\.[0-9]{0,2})|([0-9]{0,9}))$/.test(curAmt)) {
       alert("Enter valid amount");
    }
    else {
       alert("Amount is valid");
    }
}

<input id="amount" type="text" onkeypress="addZero(this)">

<input type="submit" onclick="checkAmount()">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

要添加前导零,您可以使用标准JavaScript功能:

&#13;
&#13;
var input = '.15';

var formatted = Number(input).toFixed(2);

$('#result').text( formatted );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>
&#13;
&#13;
&#13;