javascript - 如何匹配至少一个必须出现的 2 个数字(不同范围)的序列?

标签 javascript regex angular

我有以下正则表达式(在 Angular 2 <- Typescript 中使用):

 /[0-5]?[0-9]?/

出于某种原因,这可以完美匹配任何有效分钟:1,2, ..., 59 (即即使没有写入数字,它也中有效..但两个数字都是可选的!)

那么,为什么这仍然有效?如何匹配[0-5]或[0-9]或[0-5][0-9]但不匹配空字符串?

Valid inputs are: 0, 1, 2, 3, ...., 59

我尝试使用 {1,2} 但这显然匹配 3 个字符

最佳答案

我会用

[0-5]?[0-9]

匹配从 0059 的任意两位数。

参见 the regex demo

在这里,

  • [0-5]? - 匹配从 05
  • 的 1 个或 0 个数字的字符类
  • [0-9] - 匹配从 09 的 1 个数字的字符类。

注意:由于第一个[0-5]?包含一个0,一个前导的0可以存在于数字中。如果您不想要前导零,请将第一个字符类替换为 [1-5]?

要仅将它们作为独立数字进行匹配,请使用单词边界:\b[0-5]?[0-9]\b

要仅匹配包含这些数字的整个 字符串,请使用^/$ anchor :^[0-5] ?[0-9]$

关于javascript - 如何匹配至少一个必须出现的 2 个数字(不同范围)的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882999/

相关文章:

javascript - 在 vue.js 路由加载之前检查权限

javascript - 让您的 jquery 数据表按第一列对 DESC 进行排序。或者将另一列设置为其默认排序方式

java - 捕获组仅返回每个组的最后一次出现

javascript - jQuery + JSONP 返回空数据?

python - 修改NLTK word_tokenize以防止括号标记化

python - 有没有办法使用正则表达式组合多个字符串?

javascript - 无法从另一个 .ts 文件访问 .ts 文件中定义的函数定义

javascript - 如何在 Ionic2 提供程序上创建和使用模块类?

node.js - 如何从 Angular 2 发布到 Express 服务器

javascript - navigator.getUserMedia() 录音 - 如何设置麦克风的音量输入级别?