利用者の登録スクリプトを作成しているのですが、その利用者の名前を日本語・英字・数字を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ランキング
-
VBSがコンパイルエラーになりま...
-
perlをバージョンアップしたら...
-
教えて下さい。
-
Excel VBA 定義されたプロージ...
-
LCD ディスプレイを Raspberry ...
-
VBAProjectのモジュ...
-
ArduinoのジャイロモジュールMP...
-
WordでVBAの変数について
-
コンボボックスの変更に応じて...
-
VBAでoutlook365が起動しません。
-
Perlでgoogle newsのRSSを取得...
-
【C言語】メールを送信するプロ...
-
Excel VBA 『Call』で呼び出す...
-
Excel VBAでリンク切れをチェッ...
-
EXCEL VBAモジュール...
-
powershellで関数名を変更する...
-
perl xml解析について
-
大量の標準モジュールを解放す...
-
シートモジュールで使う変数を...
-
VBAで「メモリが不足しています」
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
教えて下さい。
-
perlをバージョンアップしたら...
-
【python】requestsでdataとし...
-
POSTで送信するとエラーになる
-
WebClientの文字列送信にてエラー
-
SWI-Prologでのエラーに関して
-
メールアドレスについて
-
erf(x)とerfc(x)のカタカナ読み...
-
データベースが返すエラー文字...
-
VBscriptのエラーメッセージの...
-
ラズパイ4からGmailへの...
-
windows7のperlでaccdb接続でエ...
-
VBからブラウザの表示状態(リ...
-
英字のみを検索する正規表現に...
-
逆行列(Maxima)
-
w3cの検証エラー?
-
LWPでtimeoutがうまくいかない
-
Pythonプログラミングでエラー
-
powershellで引数受け取り時に...
おすすめ情報