我有一个选择框:
<select name="count">
<option value="0">Select count</option>
<option value="1">1</option>
<option value="2">2</option>
..
<option value="5">5</option>
<option value="5+">5+</option>
</select>
所以我想检查该值是整数还是5+
。
我尝试过:
$pattern = '/^[0-9]*?[0-9+]$/';
$count = '1';
if(preg_match($pattern, $count)){
echo 'Valid';
}else{
echo 'Invalid';
}
返回Valid
。
$count = '10+';
这还会返回Valid
。
但不确定是否工作正常。
是检查整数还是整数+?
我只想检查整数或5 +。
答案 0 :(得分:1)
您可以使用a
来允许^\d+(\+?)$
在任何数字后。
+
如果您只想专门允许$pattern = '/^\d+(\+?)$/';
preg_match($pattern, '1'); // Match
preg_match($pattern, '5+'); // Match
preg_match($pattern, '10+'); // Match
,那么5+
应该可以完成工作。
^(\d+|5\+)$
您可以看到以上两种方法in a sandbox。
答案 1 :(得分:1)
您可以使用
'~^(?:\d+|5\+)$~D'
请参见regex demo
详细信息
^
-字符串的开头(?:
-与两个模式之一匹配的non-capturing group:
\d+
-一个或多个数字|
-或5\+
-5+
子字符串)
-组结束$
-字符串的末尾(因为PCRE_DOLLAR_ENDONLY
D
修饰符不允许$
匹配字符串中最后一个换行符之前的字符)。答案 2 :(得分:0)
您需要使用
$pattern = '/^\d+\+?$/';