利用者の登録スクリプトを作成しているのですが、その利用者の名前を日本語・英字・数字をOKにしており、データファイルに保存しています。
この中には例えば「管理者」「admin」「Admin009」の三つの名前があるとします。
次に新しい利用者が「管理者」という名前を登録しようとしてもNGになるように、既に登録されている名前は登録不可という感じにしています。
$nameが入力フォームの名前欄で、$dataがデータファイルとして、
if($name eq $data){
エラー文
}
などで同じ名前が登録されていたらNGにしています。
同じように「admin」で登録しようとしてもNGになるわけですが、この場合大文字小文字を区別しないようにしたいと思っています。
AdminやADMINなども不可能になるという事です。
その場合正規表現で、
if ($name =~ /$data/i){
エラー文
}
で大丈夫かと思ったのですが、このようにした場合500エラーが発生しました。(これはデータファイルの中に日本語も混ざってるからでしょうか?)
if ($name =~ /^$date/i){
エラー文
}
としたらエラーは出ずに、大文字の「ADMIN」や「adMin」などもNGにしてくれるのですが、「ADMINS」や「adminsss」などの名前も登録できなくなります。
先頭にマッチする「^」がある為、文字列の先頭に「admin」の文字列があるのでNGになると思うのですが、
私の希望では「admin」という同語(大小区別なく)に対してNGを出したくて、adminsは登録可能にしたいというのが希望の動作です。
このような場合、どのような正規表現が適しているか、もしお解かりになられましたらご教示いただけますと幸いです。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
末尾に'$'を付ければ良いと思います。
if($name=~/^$data$/i){
のように。
'^'を付けたらエラーが出なくなったという事ですが、
もしやっていないのなら、日本語の処理はちゃんと
やっておいた方が良いと思います。
perl5.8系なら入力時に'<:encording()'するか、または単にencode()し、
perl5.0系なら一旦eucに変換してから比較する、という感じです。
ありがとうございます。
ご提示頂いた方法で希望の動作が実現できました。
日本語の処理ですが、一応やってはいるのですが、恐らくうまくいっていないみたいなので、教えて頂いた方法でまた着手させていただこうと思います。
ご丁寧にご教示頂きましてありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) ユーザー名を漢字で登録してしまった 3 2022/12/30 06:51
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- 婚活 マッチングアプリでいいねを送って来た女性のプロフィールが、本当かどうか怪しい お世話になります。 マ 4 2022/07/15 13:14
- 知的財産権 商標登録について ある物を販売するとします。その商品に付けた名前が、他の誰かが商標登録されたものとし 7 2022/10/09 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい。
-
Pythonプログラミングでエラー
-
VBSがコンパイルエラーになりま...
-
WebClientの文字列送信にてエラー
-
Excelマクロでセルに値が入力さ...
-
【python】requestsでdataとし...
-
erf(x)とerfc(x)のカタカナ読み...
-
例外処理のフローチャートの記...
-
Perlソースコードをコンパイル...
-
ユーザー定義関数に#NAME?が返...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
【vba】フォームに書いてあ...
-
Excel VBAでリンク切れをチェッ...
-
VBAでoutlook365が起動しません。
-
ExcelVBA AddinでOnAction
-
LCD ディスプレイを Raspberry ...
-
モジュールとは何ですか
-
AIX6でファイルのタイムスタン...
-
Excel VBAで、ユーザーフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
教えて下さい。
-
perlをバージョンアップしたら...
-
SWI-Prologでのエラーに関して
-
erf(x)とerfc(x)のカタカナ読み...
-
POSTで送信するとエラーになる
-
w3cの検証エラー?
-
au「W54S」だけcgi-lib.plで不...
-
WebClientの文字列送信にてエラー
-
【python】requestsでdataとし...
-
ホームページをHTTPS化したらbi...
-
Pealでエラーメール自動処理
-
CGIの接続エラー
-
英字のみを検索する正規表現に...
-
windows7のperlでaccdb接続でエ...
-
Pythonプログラミングでエラー
-
Unityでアニメーションできない
-
powershellで引数受け取り時に...
-
ラズパイ4からGmailへの...
-
perl ver5.24.0 x68版で、requi...
おすすめ情報