1立方c25混凝土需要多少水泥:数字 1-25的正则表达式(numbers 26)

我正在做一个音乐生成项目。输入只包含 alpha 字符和数字。正则表达式是我们设置为限制的要求之一。

所以,这让我的数字低于 26,但如果像 27 这样的数字显示出来,它仍然拿起 2 和 7。

/[0-2][0-5]|[1-9]/g 

我应该补充...这是一个大字符串的一部分,在数字之前和之后都有字母和空格。所以我必须识别字符串中的数字并将其拉出。只使用 string.prototype.match () 和 regex。长话短说。Thx

3

您的[0-2][0-5]|[1-9]正则表达式模式匹配字符串中0-2数字后跟0-5数字或1-9数字任意位置的任何序列。

要匹配125的单个值,可以使用

/\b(0?[1-9]|1[0-9]|2[0-5])\b/g
See theregex demo

图案详情

\b-前导词边界

(0?[1-9]|1[0-9]|2[0-5])-两种选择之一:

0?[1-9]-可选前导0后跟从19的数字

1[0-9]-10till19 2[0-5]-20till25

\b-尾随字边界

2

啊...所以你现在有...0-5,10-15,20-25 或 0-9

你有正确的想法,只是错误地应用了这个想法。

([01]?[0-9]|2[0-5])
// suld omit tse pesky one-offs you're seeing as mentioned in the comments.
^([01]?[0-9]|2[0-5])$
\b([01]?[0-9]|2[0-5])\b
// if you also want to exclude 0...
^([1-9]|1[0-9]|2[0-5])$
\b([1-9]|1[0-9]|2[0-5])\b

这比喻说 0 到 19 之间的任何数字(w / 或 w / o 前导 0)或 20-25。

0

我会建议沿着线的东西(采取或删除我添加的一些元素,因为我不知道你的确切要求)

/^(([ 01]?[1-9])|2[0-5])$/

^...$匹配整个输入,以避免匹配两位数输入的单个数字

?以允许一位数输入

|以允许两种情况“第一位 = 0 或 1”和“第一位 = 2”

但总的来说,肯定有比正则表达式更好的工具来完成这项工作,比如解析数字并做一个简单的比较。

0

^\d$|^1\d$|^2[0-6]$将匹配 0-26。

但是,这不是您应该使用 regex 解决的问题,更好的解决方案是使用<<=等运算符测试数字:

myNum < 27 // is 0-26

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(948)
U盘文件删除如何恢复:如何删除空白“U+3164”(u+3164 .)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(30条)