繁体   English   中英

正则表达式接受准确的4位数字。 开头包括0

[英]Regular Expression accept exactly 4 digit number. Including 0 at beginning

我需要创建一个正则表达式,以确保用户输入的数字包括4位数字,即使首位数字为0。

  • 0001应该为true。
  • 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();

正则表达式适用于字符串,而不适用于数字。 因此,如果前导零已被删除,则意味着您的输入字符串已被解析为数字。 您需要阻止这种情况的发生-正则表达式本身是正确的,并且可以在前导零处正常工作

尝试使用:

$number = '49';
$formattedNumber = sprintf('%04d', $number);
echo $formattedNumber;

结果:

0049

因为php对象是双精度的并且'123'(String)等于123(int),所以除非使用verbumSapienti解决方案,否则我的字段始终会更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM