我想在字符串中的任何地方包含数字和/或“h”或“H”字符时验证字符串。
e.g。
123 - 有效
123h - 有效
1h23 - 有效
h234 - 有效
123H - 有效
asdf - 无效
123d - 无效
我能够仅限数字字符串,但不能满足h的额外要求。我怎么能这样做?
答案 0 :(得分:5)
^\d*h?\d*$
与ignore case选项一起使用。
^
锚定到字符串的开头。
\d*
匹配0位或更多位数
h?
匹配0或1小时
\d*
匹配0位或更多位数
$
锚到字符串的末尾。
答案 1 :(得分:3)
[0-9h]*
将匹配任何数字0-9或h。要只允许一个,“h”你可以使用[0-9]*h?[0-9]*
(我假设你已经做了不区分大小写)。您还可以限制h周围的位数,如[0-9]{1,2}h?[0-9]{1,2}
。
让我们真的忘掉了,假设你想让0-59作为分钟输入,或者以小时和分钟格式输入分隔'h':
[0-9]{1,2}h[0-5]?[0-9]|[0-5]?[0-9]
答案 2 :(得分:1)
这应该对你有用/[\dh]*/i
您的示例已经过测试here。
答案 3 :(得分:0)
答案 4 :(得分:0)
使用它:
[^h]*h?[^h]*
这应该有效。