数字1-25的正则表达式

时间:2016-08-25 06:24:32

标签: regex

我正在制作一个音乐生成项目。输入仅包含字母字符和数字。正则表达式是我们设定的限制要求之一。

所以,这让我得到26以下的数字,但是如果像27这样的数字显示它仍然可以拿到2和7.如何排除所有数字26及以上?谢谢!

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

我应该添加...这是一个大字符串的一部分,在数字前后有字母和空格。所以我必须识别字符串中的数字并将它们拉出来。仅使用string.prototype.match()和regex。很长的故事。 THX

4 个答案:

答案 0 :(得分: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

请参阅regex demo

模式详情

  • \b - 领先的字边界
  • (0?[1-9]|1[0-9]|2[0-5]) - 任何一种选择:
    • 0?[1-9] - 可选的引导0,后跟19的数字
    • 1[0-9] - 1019
    • 2[0-5] - 2025
  • \b - 尾随字边界

答案 1 :(得分:2)

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

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

null

比喻性地表示0到19之间的任何数字(w /或w / o preleading 0' s)或20-25。

答案 2 :(得分:0)

我会建议一些事情(取消或删除我添加的一些元素,因为我不知道你的确切要求)

/^(([ 01]?[1-9])|2[0-5])$/
  • ^...$匹配整个输入以避免匹配两位数输入的单个数字
  • ?允许输入一位数
  • |以允许两种情况"第一位= 0或1"和"第一个数字= 2"

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

答案 3 :(得分:0)

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

然而,这不是你应该用正则表达式解决的问题。更好的解决方案是使用<<=等操作符测试数字:

myNum < 27 // is 0-26