-1

preg_match のない if ステートメントでは検証が機能しますが、preg_match では常に false を返すことに注意してください。

フィールドを検証し、8 つの数字が含まれていることを確認したいと考えています。

function account_number_validation($validation_result){
  $form = $validation_result["form"];


 if(!preg_match('[0-9]{8}', $_POST['input_19'])){

    // set the form validation to false
    $validation_result["is_valid"] = false;

    //finding Field with ID of 1 and marking it as failed validation
    foreach($form["fields"] as &$field){

        if($field["id"] == "19"){
            $field["failed_validation"] = true;
            $field["validation_message"] = "This field is invalid!";
            break;
        }
    }

}

//Assign modified $form object back to the validation result
$validation_result["form"] = $form;
return $validation_result;

}

アイデアはありますか?

4

2 に答える 2

0

これを試して:

// ...
if(!preg_match('#[0-9]{8}#', $_POST['input_19'])) {
// ...
于 2013-03-23T19:20:23.223 に答える
0

if ステートメントを次のように変更します。

if(!preg_match('/^[0-9]{8}$/', $_POST['input_19'])){
于 2013-03-23T19:11:59.730 に答える