0

クライアントから、Web サイトのログインに使用するユーザー名に新しいルールを追加するように依頼されました。したがって、次のコードを試しました。

  $userid = "12345678SM"; //format of the username
  $check="/^[0-9]+[S].[M]{10}$/i";
  $check2="/^[0-9]+[F].[M]{10}$/i";
    print($name);
  if(!preg_match($check,$userid) || !preg_match($check2,$userid)) {
    print('The user id is invalid');                    
  }

ただし、ユーザー名の正しい形式を入力しても、エラーが出力されます。私は実際にこのコードを時々前に使用して動作しましたが、ここでは動作しない理由がわかりません。誰でも私を助けてくれませんか?

参考: ユーザー名の形式は、7 桁の数字と選択した 2 文字のアルファベットである必要があります。例: SM または FM

4

2 に答える 2

3

[M]{10}10Mが必要であることを意味します。

正しいチェックは次のとおりです。

$check="/^\d{7}[SF]M$/i";
if (!preg_match($check, $userid)) {
    print('The user id is invalid');                    
}
于 2013-03-22T20:53:27.027 に答える
1

" [M]{10}" の部分は "MMMMMMMMMM" に一致します。説明した形式は、次の方法で確認できます

^[0-9]{8}[S|F]M$

また、あなたは言った

$userid = "12345678SM"; ( 8桁)

しかし

ユーザー名の形式は、7 桁の数字と選択した 2 文字のアルファベットである必要があります

私の例は 8 で動作します。

于 2013-03-22T20:55:32.630 に答える