我想確保輸入對于簡單計算有效。因此,我只想讓字符匹配這些0 到 9, + - * / ( )所以我有~[^0-9()+\-*/]~我的正則表達式。它在這里工作正常所以我在 PHP 中有這段代碼。$exp = (1+2*3)+4;if(preg_match('~[^0-9()+\-*/]~', $exp)){ eval("echo $exp;");} else { echo "Bad Expression!";}這給了我“糟糕的表達!”我在這里做錯了什么?
1 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
使用以下正則表達式。您還需要轉義除法 (/) 符號。
$exp = (1+2*3)+4;
if(preg_match('~^[0-9()+\-*\/]+$~', $exp)){
eval("echo $exp;");
} else {
echo "Bad Expression!";
}
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消