我正在查看preg_match指令,但努力聚集我需要的东西,只允许使用某些字符,以及如何将其实现为模式格式
if(preg_match('[0-9.$M]', $_POST['budget']) === true) {
$errors = 'no illegal';
} else {
//Illegal character in budget
$errors = 'illegal';
}
但是我已经意识到,对于一个对这种组合没有用的人
0123456789$M.
以及即使我让它工作也不会像我想要的那样发挥作用。因为我需要检查$ _POST ['预算']并确保它的格式正确,然后继续使用它。它只能包含我提出的角色,其他任何东西都会造成很大的混乱。
到目前为止,我已经通过javascript更改了任何条目,但是如果它被禁用,那么他们可以随意放入。
所以我需要的是伪
if (preg_match($allowed_characters, $_POST['budget'] === true && DOESNT CONTAIN ANY OTHER CHARACTERS) {
//No illegal characters
} else {
//Illegal characters!!
}
答案 0 :(得分:2)
1)preg_match返回INT或BOOL false。
2)您的模式对preg_match无效
应该是这样的:
if(preg_match('/[^0-9\.\$M]+/', '0123456789$M.')) {
$errors = 'illegal';
} else {
$errors = 'no illegal';
}