Javascript 正则表达式一次匹配

Posted

技术标签:

【中文标题】Javascript 正则表达式一次匹配【英文标题】:Javascript regex matching on a time 【发布时间】:2013-11-19 21:10:08 【问题描述】:

我想看看我的字符串是不是HH:MM:SS的形式。

这是我目前所拥有的:

d = '00:01:01'
d.match(/\d2:\d2:\d2/)
["00:01:02"]

有没有办法只得到一个真/假,而不是一个数组?

【问题讨论】:

***.com/questions/8318236/… 看看这个 一个数组是“真实的”......所以你仍然可以检查if(d.match(...)) 那我该怎么做@devnull69 咳咳……我刚刚告诉过你,不是吗?您只需将我的答案中的... 替换为您已有的正则表达式 你也可以使用 .test() developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 【参考方案1】:

使用 Regexp 对象的.test 方法。

/\d2:\d2:\d2/.test(d)
// true

【讨论】:

【参考方案2】:

也许,您可以使用 regex.test(str),但也可以使用 match,因为成功时,match 返回 array,这是一个 truthy 值,失败时,match 返回 null是一个falsy 值。检查此以了解truthy and falsy。

所以,如果你使用

if(d.match(/\d2:\d2:\d2/)) 
    // true

else 
    // false

这会起作用,请检查这个小提琴为an example 和this answer(关于!!),我在我的例子中使用了!!,所以你可能会有疑问。

【讨论】:

以上是关于Javascript 正则表达式一次匹配的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript RegExp(正则表达式) 对象

IFE_part2_JavaScript_正则表达式运用(判断邮箱/手机号码)

Javascript正则笔记

[JavaScript] js中全局标识正则表达式的lastIndex属性

正则表达式 最小匹配(第一次出现) 2020-10-01

JavaScript - 正则表达式