She*_*rms 1 php regex preg-match
更新别人的旧PHP项目,我不熟悉正则表达式.
问题一是:这是做什么的?
preg_match('/^[0-9]+[.]?[0-9]*$/', $variable)
Run Code Online (Sandbox Code Playgroud)
问题二是:这是一个安全的过滤器,用于插入没有mysql_real_escape_string()的mysql数据库吗?我知道答案是概率不是,但只有当这个正则表达式没有通过时才设置为使用mysql_real_escape_string().
谢谢.
^ // start of string
[0-9]+ // one or more numbers (could also be \d+)
[.]? // zero or one period (could also be \.?)
[0-9]* // zero or more numbers (could also be \d*)
$ //end of string
Run Code Online (Sandbox Code Playgroud)
因此,它确保输入是一个数字,例如12或3.6(52.也将匹配).它不匹配.35或12a6.
对于DB插入来说似乎足够安全,因为它只允许数字.