Javascript中带有数字点的模式验证

Javascript中带有数字点的模式验证,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

为什么下面的模式检查返回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之间匹配。