php - PHP - 检查 2 个逗号分隔的整数中的前导 0
问题描述
我有一个带有 2 个逗号分隔整数的用户输入字符串。
示例(确定):
3,5
我想拒绝任何包含前导 0 的用户输入。
例子(坏):
03,5
00005,3
05,003
现在我能做的是将这两个数字分成 2 个单独string
的 's 并ltrim
在每个数字上使用,然后查看它们是否与ltrim
执行之前发生了变化:
$string = "03,5";
$string_arr = explode(",",$string);
$string_orig1 = $string_arr[0];
$string_orig2 = $string_arr[1];
$string_mod1 = ltrim($string_orig1, '0');
$string_mod2 = ltrim($string_orig2, '0');
if (($string_mod1 !== $string_orig1) || ($string_mod2 !== $string_orig2)){
// One of them had leading zeros!
}
..但这似乎不必要地冗长。有没有更清洁的方法来做到这一点?也许与preg_match
?
解决方案
您可以缩短代码并检查每个部分的第一个字符是否为零:
$string = "03,5";
$string_arr = explode(",",$string);
if ($string_arr[0][0] === "0" || $string_arr[1][0] === "0") {
echo "not valid";
} else {
echo "valid";
}