我只想在字符串中的任何位置包含数字和/或'h'或'H'字符时验证字符串。仅适用于数字的正则表达式仅加'h'字符
例如
123 - 有效
123H - 有效
11 H 23 - 有效
h234 - 有效
123H - 有效
ASDF - 无效
123D - 无效
我我能够限制字符串的数字而不是与h的额外要求。我怎样才能做到这一点?
我只想在字符串中的任何位置包含数字和/或'h'或'H'字符时验证字符串。仅适用于数字的正则表达式仅加'h'字符
例如
123 - 有效
123H - 有效
11 H 23 - 有效
h234 - 有效
123H - 有效
ASDF - 无效
123D - 无效
我我能够限制字符串的数字而不是与h的额外要求。我怎样才能做到这一点?
^\d*h?\d*$
与ignore case选项一起使用。
^
锚字符串的开始。
\d*
匹配0或多个数字
h?
匹配0或1小时
\d*
匹配0或多个数字
$
锚固到字符串的末尾。
[0-9h]*
将匹配任何数字0-9或h。要只允许一个,“h”可以使用[0-9]*h?[0-9]*
(我假设你已经在做大小写不敏感)。您也可以像在[0-9]{1,2}h?[0-9]{1,2}
中那样限制h周围的数字位数。
让我们得到真正的忘乎所以,并假设你想允许0-59被输入为分钟,或在小时和分钟格式分离“H”:
[0-9]{1,2}h[0-5]?[0-9]|[0-5]?[0-9]
谢谢。它的工作:) – deathrace
这对于'12H'不适用于'H'的某处。 '^ \ d * h?H?\ d * $'将是正确的。 –
@VishalSuthar确定它会工作。你读过我的解释还是尝试了regexr链接?你的将匹配1hH123 – stema