0

私のコードは次のようなものです:

   case 'phone_number':
                        $pattern = "/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[\d]{1,})?$/";
                        //$trimmed = str_replace(' ', '', $pattern);
                        $pattern = preg_replace(' ', '', $pattern);

                break;

                default:
                        return false;
                break;

        }
        return preg_match($pattern, $data) ? true : false;

これは電話番号の検証であり、番号の後にスペースがある場合は削除して、エラーの状態で失敗しないようにしたいtrim(strlen($_POST['phone_number'])) > 30

これどうやってするの ?どうもありがとう!

4

1 に答える 1

3

あなたが呼んでいる:

trim(strlen($_POST['phone_number'])) > 30

これは次のように翻訳されます:

strlen($_POST['number'])) --> will be 10, or 12

trim( the_number_above ) --> nothing to trim

もちろん、その数は 30 未満になります。正しい順序で関数を呼び出します。

strlen(
    trim( $_POST['phone_numer'] )
) > 30

とにかく、スクリプトの最初の部分ですべての入力をトリミングします。すべてのチェックではありません。

于 2012-08-24T11:46:01.367 に答える