使用JavaScript RegEx验证am和pm的时间

Kar*_*iga 5 javascript regex

我对正则表达式不太满意.我有以下时间:12:00am.

我需要一个尊重这种格式的Javascript正则表达式: hh:mm[am/pm]

var regex = /^(\d\d):(\d\d)\s?(?:AM|PM)?$/;
Run Code Online (Sandbox Code Playgroud)

lea*_*eaf 8

你差不多完成了,缺少的部分是几十小时,小时数从不大于1,分钟小于5.我还在末尾添加了"忽略大小写"标志,接受"am","AM","Am","aM":

var regex = /^([0-1]\d):([0-5]\d)\s?(?:AM|PM)?$/i;
Run Code Online (Sandbox Code Playgroud)

限制更多(1≤小时≤12):

/^([1-9]|1[0-2]):([0-5]\d)\s?(AM|PM)?$/i
Run Code Online (Sandbox Code Playgroud)

Doc:http://www.javascriptkit.com/javatutors/redev.shtml.

  • 我建议的另一个改变是:`var regex =/^([0-1]\d):( [0-5]\d)\ s*(?:AM | PM)?$/i;`.使用\ s*而不是\ s?允许任意数量的空格 (4认同)