public function vilidate_test(){ $phone = input('phone'); $pwd = input('pwd'); $pwd_confirm = input('pwd_confirm'); $data = [ 'phone' => $phone ,'pwd' => $pwd ,'pwd_confirm' => $pwd_confirm ]; $rule = [ 'phone' => 'require|mobile' ,'pwd' => ['require','confirm','regex'=>'/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[\(\)])+$)([^(0-9a-zA-Z)]|[\(\)]|[a-z]|[A-Z]|[0-9]){6,}$/'] // tp6驗證器規定‘如果正則表達式中包含有|符號的話,必須使用數組方式定義’ ]; $fun_type = 2;// 推薦用方法2省得寫異常捕獲 if($fun_type == 1){ // 方法1:基礎BaseController控制器里的validate函數需要用try捕獲不然驗證失敗會直接拋出異常(需要繼承BaseController才可以用) try { $result = $this->validate($data,$rule); } catch (\Exception $e){ print_r($e->getMessage());// 驗證失敗原因 } } else if($fun_type == 2){ // 方法二:tp里的Validate類 $validate = \think\facade\Validate::rule($rule); if (!$validate->check($data)) { print_r($validate->getError());// 驗證失敗原因 } } }