学生标记的正则表达式是什么:12.5,99.5,87,1.66
(。)的最大字符长度为5,如下所示:99.99
标记介于0到100之间
我用过这个,但它不起作用
var rmark = /^\d{0,1}\.|(\d{0,4})$/;
var txtS = $(":text");
for (var i = 0; i < txtS.length; i++) {
if (!rmark.test(txtS.eq(i).val())) {
er = 1; break;
}
}
答案 0 :(得分:1)
由于您要验证的字符串似乎来自<input type="text">
元素,因此您可以使用HTML5验证而不是JS验证,只需让浏览器为您执行此操作:
<input type="number" max="99.99" min="0" step=".01" />
但即使你需要使用JS进行验证,你仍然可以使用HTML5验证而不是正则表达式:
var isValid = (function() {
var el = document.createElement('input');
el.type = "number";
el.max = 99.99;
el.min = 0;
el.step = .01;
return function isValid(value) {
el.value = value;
return el.validity.valid;
};
})();
答案 1 :(得分:1)
http://regex101.com/r/cX1qL4/1
/^\d{1,2}(\.\d{1,2})?$/
这意味着......
^ - from the start of the string
\d{1,2} - 1 or 2 digits
( - capture group that is not required
\. - escaped dot
\d{1,2} - 1 or 2 digits
)? - this group is not required to present in the string
$ - end of the string
ps:如果它可以为空,那么/^(\d{1,2}(\.\d{1,2})?)?$/
pps:如果范围从0到100,那么/^(100|(\d{1,2})(\.\d{1,2})?)?$/
或者您可以在此处测试 - 运行代码段
$(function(){
$('input').keyup(function() {
var regexp = /^(100|(\d{1,2})(\.\d{1,2})?)?$/;
if (!regexp.test($(this).val()))
$(this).addClass('bad');
else
$(this).removeClass('bad');
});
});
.bad {color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<input type="text">