设置十进制数的格式

时间:2016-09-16 20:01:52

标签: javascript regex validation

我正在使用RegEx jQuery验证某些输入,.50 to 0.50 -.50 to -0.50 正在按预期工作。我想添加一个添加,如果用户不添加它,它会在小数点前加0。

例如,

$(document).ready(function() {
  $('#btnval').click(function() {
    var floatRegex = new RegExp(/^-?[0-9]+([\,|\.]{0,1}[0-9]{2}){0,1}$/);
    var currentSetTextBoxValue = $('#txtval').val();
    //alert(currentSetTextBoxValue);
    var validateInput = floatRegex.test(currentSetTextBoxValue);
    alert(validateInput);
  });
});

怎么做?

代码:



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="txtval" />
<input type="button" value="Get textbox Value" id="btnval" />
&#13;
stopPropagation
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

[0-9]+更改为[0-9]*,以便它允许零位而不是至少需要一位。

&#13;
&#13;
$(document).ready(function() {
  $('#btnval').click(function() {
    var floatRegex = new RegExp(/^-?[0-9]*([\,|\.]{0,1}[0-9]{2}){0,1}$/);
    var currentSetTextBoxValue = $('#txtval').val();
    //alert(currentSetTextBoxValue);
    var validateInput = floatRegex.test(currentSetTextBoxValue);
    alert(validateInput);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="txtval" />
<input type="button" value="Get textbox Value" id="btnval" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您需要稍后转换,可以修复此值:

if(currentSetTextBoxValue.indexOf('.') === 0){
    currentSetTextBoxValue = '0' + currentSetTextBoxValue;
}
if(currentSetTextBoxValue.indexOf('.') === 1 && currentSetTextBoxValue.indexOf('-') === 0){
    currentSetTextBoxValue = '-0.' + currentSetTextBoxValue.split('.')[1];
}

https://jsfiddle.net/str59woa/3/

答案 2 :(得分:0)

您可以使用正则表达式替换输入!这个正则表达式寻找。要么 -。在字符串的开头,它将替换为0.或-0。取决于它找到的内容,如果它不匹配,则字符串将是相同的。

&#13;
&#13;
$(document).ready(function() {
  $('#btnval').click(function() {
    var floatRegex = new RegExp(/^-?[0-9]+([\,|\.]{0,1}[0-9]{2}){0,1}$/);
    var currentSetTextBoxValue = $('#txtval').val().replace(/^(\-)?\./, "$10.");
    //alert(currentSetTextBoxValue);
    var validateInput = floatRegex.test(currentSetTextBoxValue);
    alert(validateInput);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="txtval" />
<input type="button" value="Get textbox Value" id="btnval" />
&#13;
&#13;
&#13;

https://jsfiddle.net/punsm9o0/1/