我有一个像这样的变量

var time = "12h 55m";

我只允许在字符串中使用H,h,M,m字符。如果我有这样的事情

var time = "12hk 55m";

那么它会产生一个错误。我如何使用正则表达式来验证这一点。”

寻找这样的东西

if (stringToTest.match(/^[a-zA-Z0-9]*$/))

最佳答案

尝试

/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i


它匹配2位数字,后跟h或m,后跟一个或多个空格,后跟2位数字,后跟h或m

以下将匹配

"12h 55m".match(/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i)

"12m 55h".match(/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i)

"2m 55h".match(/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i)

"12m 5h".match(/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i)


这些不会

"122h 555m".match(/^\d{1,2}[hm]\s+\d{1,2}[hm]$/i)

关于javascript - 从a到z的正则表达式验证(某些字符除外),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43487767/

10-09 17:55