Javascript中带有数字点的模式验证
为什么下面的模式检查返回trueJavascript中带有数字点的模式验证,javascript,regex,validation,pattern-matching,Javascript,Regex,Validation,Pattern Matching,为什么下面的模式检查返回true var pattern = /^[0-9]+(\.([0-9]{1,3})?)?$/; var val = "10."; var check = pattern.test(val); // returns true 为什么下面的模式检查返回true var pattern = /^[0-9]+(\.([0-9]{1,3})?)?$/; var val = "10."; var check = pattern.test(val); // returns true
var pattern = /^[0-9]+(\.([0-9]{1,3})?)?$/;
var val = "10.";
var check = pattern.test(val); // returns true
为什么下面的模式检查返回true
var pattern = /^[0-9]+(\.([0-9]{1,3})?)?$/;
var val = "10.";
var check = pattern.test(val); // returns true
因为val.toString()
是10
根据测试的参数,首先将转换为字符串
让模式为ToString(Get(R,“source”))
另外,在([0-9]{1,3})之后还有一个额外的?
,
,请将其删除,然后重试
var pattern = /^[0-9]+(\.([0-9]{1,3}))?$/;
var val = "10.";
pattern.test(val); // returns false
演示
var模式=/^[0-9]+(\.([0-9]{1,3}))?$/;
var val=“10”;
console.log(pattern.test(val))代码>因为?
前面标记的0或1之间匹配。