$(document).on("input", "#money", function() {
if (/^\d*(\.\d+)/g.test($(this).val())) {
$(this).css("border", "1px solid rgba(0,0,0,.15)").removeClass("not");
} else {
$(this).css("border", "2px solid red").addClass("not");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="money" />
我希望有一个货币价值的正则表达式。含义一位小数点和数字。小数点和数字next应该是可选的。
可接受的值:
100
100.00
现在它不接受,如果没有小数点,它也接受多个点,如:
100.12.1
答案 0 :(得分:2)
尝试使用此正则表达式^\d*(?:\.\d{2})?$
,它将匹配100
,100.00
和.00
,但不会匹配100.000
,100.00.0
或{{1 }}。如果您想允许100.0
,请使用100.0
。
^\d*(?:\.\d{1,2})?$
和^
分别匹配输入的开头和结尾。这样可以避免匹配$
foo100.00bar
匹配任意数量的数字\d*
可选择与(?:...)?
匹配一个句点和一个或两个数字