需要知道这个正则表达式的作用,是否安全?

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().

谢谢.

Roc*_*mat 5

^      // 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)

因此,它确保输入是一个数字,例如123.6(52.也将匹配).它不匹配.3512a6.

对于DB插入来说似乎足够安全,因为它只允许数字.