0

PHP形式のアカウント番号の入力を検証しようとしています。オプションで8つの数字と「-」を含める必要があります。'-'がある場合は、無視する必要があります。[送信]ボタンを押した後、入力が無効な場合に備えて、フォームの上に警告メッセージが表示されるはずです。

助けてください。

これは私がこれまでに得たものですが、これが正しいかどうかはわかりません。また、フォームの上に警告メッセージを表示する方法もわかりません。

$acctnum= "$acctnum";

if(empty($acctnum)){
  echo "You did not enter an account number, please re-enter"; }

else if(!preg_match("\-^[0-9]{8}", $acctnum)){
  echo "Your account number can only contain eight numbers. Please re-enter."; }

ありがとうございました!

4

3 に答える 3

2

あなたはしようとしているようには見えません。そのような正規表現を作成するように指示するドキュメントやチュートリアルはありません。まず、区切り記号はどこにありますか? -文字クラスの外にあり、したがって特別な意味がないのに、なぜエスケープされるのですか? あれはそこで何をしているの^ですか?

これはそれを行う必要があります:

$acctnum = str_replace("-","",$acctnum);
if( !preg_match("/^\d{8}$/",$acctnum)) echo "Error...";
于 2012-11-18T20:57:32.567 に答える
0

正規表現は非常に高価なので、代わりに次のようにします。

$acctnum = (int) $acctnum; // this automatically ignore the '-'
if ($acctnum < 0) $acctnum = -$acctnum;
$digits = ($acctnum == 0) ? log10($acctnum) + 1 : 1;
if ($digits === 8) { ... }
于 2012-11-18T21:02:07.093 に答える