[英]Cannot find errors of the regular expression
我正在制作一个版本过滤器,它接受用户输入作为键。 此过滤器需要具有检查机制以禁用非法版本输入。 我的合法版本类似于1.2.3.4
,所以我制作一个正则表达式,
RegExp('^(\d+\.)*(\d+)$').test('1.2.3.4')
我最初的计划是^(\\d+\\.)
意味着类似于123., 1. (\\d+)$
表示一个充满数字的块。
但它总是回归虚假,让我感到困惑; 我不知道该怎么做才能进一步纠正它。
欢迎任何想法或建议。
我认为你应该使用以下正则表达式模式:
^\d+(\.\d+)*$
这将匹配独立的单个数字,例如5
,或者跟随点和另一个数字的数字,例如1.5
,依此类推。 诀窍是使整个.NUMBER
术语成为可选项。
// positive cases console.log(/^\\d+(\\.\\d+)*$/.test('123')); console.log(/^\\d+(\\.\\d+)*$/.test('1.2.3.4')); // negative cases console.log(/^\\d+(\\.\\d+)*$/.test('1.')); console.log(/^\\d+(\\.\\d+)*$/.test('Jon Skeet'));
RegExp('^(\\d+\\.)*(\\d+)$').test('1.2.3.4')
是对的。 谢谢你们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.