[英]JavaScript regex for custom validation
我需要一个正则表达式来验证JavaScript中的字符串/小数。
最多可包含9个元素,最多2个小数
只是
123 - valid
123456789 - valid
1234567896 - invalid ( max 10 chars )
123. - invalid
123.2 - valid
123.32 valid
123.324 invalid ( 3 decimal points )
所以我写了一个这样的正则表达式
/^([0-9]{1,9})+[.]+([0-9]{0,2})$/
任何人都可以微调此正则表达式吗
尝试以下操作:
^\d{1,9}(\.\d{1,2})?$
您可以使用正则表达式^(?=.{0,10}$)\\d{0,9}(\\.\\d{1,2})?$
$('input').on('input', function() { $(this).css('color', this.value.match(/^(?=.{0,10}$)\\d{0,9}(\\.\\d{1,2})?$/) ? 'green' : 'red'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <input type=text/>
像这样吗
/^[0-9]{1,9}(\.[0-9]{0,2})?$/
您可以在开始时使用负数前瞻,以将长度限制应用于整个比赛 :
^(?!\S{10})\d+(?:\.\d{1,2})?$
^
-字符串的开头 (?!\\S{10})
-从开始到结束条件不得超过9个非空白字符 \\d+
-1个或更多数字 (?:\\.\\d{1,2})?
-1或零组.
+1或w2位数 $
-字符串结尾 但是,您也可以只将浮点数/整数与^\\d+(?:\\.\\d{1,2})?$
匹配,然后检查匹配文本的长度来确定其是否有效。
请注意,如果必须省略前导零,则需要先消除它们:
s = s.replace(/^0+/, '');
然后使用上面的正则表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.