我需要创建正则表达式,以确保用户输入的数字包括4位数字,即使第一位数字为0。
0001
应该是真的。00020
应该是假的。030
应该是假的。这个正则表达式应该包含在一个类中,当我使用: / ^ \ d {4} $ / 时,如果数字以0开头则不起作用。(自动更改为int并删除零..)。 如果我把数字放在“”它可以工作,但我想要更好的正则表达式。
如何编写正则表达式,以便在数字的开头接受0?
由于 这是我的代码:
public function set_id($num){
$preg = "/^[0-9]{4}$/";
if(preg_match($preg, $num))
{$this->id = $num;}
else {echo "<b>ID</b> can not accept less then 4 digit number!";}
}
public function get_id(){
return $this->id;
}
}
$a = new Business();
$a->set_id(0012);
echo $a->get_id();
答案 0 :(得分:1)
正则表达式适用于字符串,而不是数字。因此,如果已删除前导零,则表示您的输入字符串已被解析为数字。你需要阻止它发生 - 正则表达式本身是正确的works just fine with leading zeroes。
答案 1 :(得分:0)
尝试使用:
$number = '49';
$formattedNumber = sprintf('%04d', $number);
echo $formattedNumber;
结果:
0049
答案 2 :(得分:0)
因为php对象是dimamicly和&#39; 123&#39; (字符串)等于123(int),我的字段总是更改除非我使用verbumSapienti解决方案。