繁体   English   中英

找不到正则表达式的错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM