Javascript正则表达式匹配5的倍数

时间:2018-11-28 21:17:34

标签: javascript regex

我正在尝试编写与以0或5结尾的整数匹配的正则表达式

这是我尝试过的

const pattern = new RegExp('\d*[05]')
pattern.test(100) //true
pattern.test(101) //true -> expected false
pattern.test(-100) //true

3 个答案:

答案 0 :(得分:2)

https://regex101.com/是在这类情况下提供帮助的好工具。

有效地,您的表达式匹配101而不是整个字符串-仅匹配其中的10部分(您将看到与条件匹配的部分)。

要解决此问题,您需要在RegEx的末尾添加一个$,以表示字符串的末尾。

^\d*[05]$

Example

答案 1 :(得分:1)

设置模式以查找字符串的结尾。您的其他模式是匹配的,因为它在前10个停止并且不再继续。您需要说字符串的结尾应该出现在0或5之后。

const pattern = new RegExp('\d*[05]$')

https://regex101.com/r/qQ2dE4/384

答案 2 :(得分:-1)

以下正则表达式应符合您的需求:

\d*[0,5]

对其进行测试并查看说明here