• ベストアンサー

LEFT関数のようなもの(7桁の数字から左の3桁の数字を抜き出す)

はじめての質問です、よろしくお願いします。 ホームページでのアクセス制限を行うフリーcgiを修正・改造して、目的にかなうように作り替えたいのです。 このアクセス制限で行いたいのは  ・パスワードに7桁の数字を入力(例:1234567)  ・左の3桁(123)だけをパスワードリストに照合。 この「7桁の数字から左の3桁の数字を抜き出す」という部分にお手上げの状態です。 LEFT関数の様なもの、または、そのような処理をする方法について、アドバイスやヒントをお願い致します。 また、入力されたパスワードが7桁かどうかのチェック方法についてもよろしければアドバイス下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • w-inty
  • ベストアンサー率33% (76/227)
回答No.1

substr(文字列,取り出す最初の位置,取り出す長さ) というのを使えばOKです。 文字数を数えたいのであれば length(文字列) がいいかと。(ただしバイト数ですので)

dive-in-ocean
質問者

お礼

ありがとうございました。 substrは基本のようですが、こんなことも分かりませんでした。 しかし、おかげさまで、目的のcgiへの改造がうまく行きました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.3

こんなのはどうでしょう。 if ($password =~ /\D*(\d{3})\d{4}\D*/) {   $left3 = $1; }

dive-in-ocean
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

パスワードを $passwordとして、 ・右3桁を抜き出す。 $password % 1000 ・7桁か確かめる。 1000000 <= $password && $password < 10000000 ではどうでしょう。 perlをしばらくやっていないので自信なしですが。

dive-in-ocean
質問者

お礼

今、この式の意味を勉強中です。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A