我使用输入文本字段只输入数字。我不能使用输入类型=";数字";因为我可能使用十进制或(.)字符
预期结果示例:
- 整数
- 带小数的数字
- 受限字母
如果可能,只允许使用十进制字符,其余字符也将限制为特殊字符。
HTML
在属性步骤中,您可以定义您的步骤,如.01.
<input type="number" required name="price" min="0" value="0" step="any">
jQuery
如果您正在寻找一个正则表达式,它只允许具有可选小数点后2位的数字
HTML:
<input name="my_field" pattern="^d*(.d{0,2})?$" />
JS/jQuery:
$(document).on('keydown', 'input[pattern]', function(e){
var input = $(this);
var oldVal = input.val();
var regex = new RegExp(input.attr('pattern'), 'g');
setTimeout(function(){
var newVal = input.val();
if(!regex.test(newVal)){
input.val(oldVal);
}
}, 1);
});
开始吧。Regex检查输入,只允许数值和小数。如果条件检查,只需要一个小数。
示例:
$(".decimal").on("input", function(evt) {
var txt = $(this).val();
txt = txt.replace(/[^0-9.]/g, '');
if (txt.split('.').length > 2)
txt = txt.replace(/.+$/, "");
$(this).val(txt);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="numeric" class='decimal'>
使用jquery验证很容易用于输入
Enter Input try it. <br/>
<input type="text" onkeypress="return event.charCode >= 46 && event.charCode <= 57" onpaste="return false">