![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
質問させてください。
メールアドレスの正当性チェックを作成してみようと思いました。
(1)"@"より左側の部分は3桁以上16桁以内
(2)使用可能文字は、英小文字,数字,'-', '.', '_'
(3)先頭文字は英小文字のみ
(4)先頭・末尾文字に'-', '.', '_'は使用不可
(5)数字のみ'_', '.', '-'のみのアドレスはだめ
---------------------------------------
$value = "xxxxxx@****.com";
$flg = 0;
$address = split("@", $value);
//****(1)****//
if((strlen($address[0]) > 16) || (strlen($address[0] < 3)){
$flg = 1;
}
if($flg == 0){
echo("このアドレスはつかます");
}else{
echo("このアドレスはつかえません");
}
------------------------------
と、チェックの(1)しかわからないのですが、
(2) ~ (5)のアドバイスを下さい。
宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
Perl 互換の正規表現が使えるハズなのに、思ったとおりに動かない罠。
私は PHP でのメアドチェックは以下のようにしています。
if ( ereg( "^[-._a-z0-9]+@[-.a-z0-9]+\.[a-z]{2,4}$", $email ) ) {
echo "$email : OK";
} else {
echo "$email : NG";
}
多分もっとスマートで細かいチェックが出来る正規表現があるんでしょうねぇ。
No.3
- 回答日時:
こんな感じで如何でしょうか?
/*----------*/
$addr = $address[0];
if( ereg("^[a-z][0-9a-z._-]{2,15}$", $addr) &&
!ereg("[_.-]$", $addr) &&
ereg("[^0-9]", $addr) ){
echo "Pass!!\n";
$flg = 1;
}
/*----------*/
「正規表現」というモノを覚えると、こういったもののチェックが楽にできます。
No.2
- 回答日時:
if (ereg("^[0-9a-z\-\.\_]+$", $address))
↑ではだめですか?
^は先頭
+は文字列の繰り返し
$は最終文字
なので,1文字目から最後の文字まで[]内のチェックをするという意味になります。
No.1
- 回答日時:
eregを使うとうまくチェックをかけることができます。
下の2つのサイトを使うとできると思いますよ。
http://itb-tech.itboost.co.jp/php/php_06.php
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
返信有難うございます。
なんとか、(2), (3), (4)の作成ができました。
(5)がどうしてもわかりません。
if(ereg("0-9a-z\-\.\_", $address)){
echo("OK");
}else{
echo("NO");
}
としてるんですが、
$address = "freaf827398r---/...__adf829";
でもOKになってしまいます。
どこかおかしいですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- 迷惑メール・スパム 迷惑メールの来ないアドレス 2 2023/03/25 00:12
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
syntax error, unexpected 'ech...
-
バッチファイルでpingの結果を...
-
findstrのerrorlevel
-
Windowsのsetコマンドでの小数...
-
DBから行を取得したフィールド...
-
ゼロとNULLを区別して number_f...
-
PHPの入力フォームの確認画面の...
-
ifの条件(不等号)を動的に埋...
-
参照渡しからの配列変数名取得。
-
phpでcookieがうまく保存されない
-
hiddenを使っているのに、表が...
-
switch()文で値の大小比較
-
foreachで回った数を表示したい
-
DTOとEntityの差は何ですか。
-
ps3で久しぶりにCDの音楽情報取...
-
【C#】DataGridViewの最大列数...
-
WordでExcelデータを差込...
-
php 入力画面から確認表示画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
オブジェクトの中身の判定(PHP)
-
PHPで訪問回数を表示するカウン...
-
ゼロとNULLを区別して number_f...
-
bashの関数の引数にスペースが...
-
ナベアツプログラム(3の倍数...
-
変数の受け渡しによる画像の表示
-
PHP一覧表示した項目にリンクを...
-
Windowsのsetコマンドでの小数...
-
Parse error というエラーの対...
-
pdftkを使った処理をバッチファ...
-
DBのハッシュ化したパスワード...
おすすめ情報