-PR-
締切済み

全角の日付はどのように表現したらいいのでしょう?

  • すぐに回答を!
  • 質問No.82357
  • 閲覧数59
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 67% (40/59)

あるテキストボックスに入力されているのが、「日付」ならば(○)を「出荷なし」ならば(-)をというように表示させたいのです。
日付は全角で入力させたいのですが、どうしたらいいのでしょう。
教えて下さい。
if($input=~/\d\d\d\d\d\d/){
$other2 = '○';
}elsif($input=~'出荷なし'){
$other2 = '-';
}elsif($input=~'未出荷'){
$other2 = '×';
}elsif($input=~' '){
$other1 = '※';
}
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.2
レベル10

ベストアンサー率 64% (73/113)

日付のフォーマットは決まっているのですか?それならその正規表現を
使ってそのようにプログラムすればよろしいと思います。
正規表現の書き方に悩んでらっしゃるのなら、まずフォーマットを
お教えください。

また、全角よりも半角英数字のほうがなにかと処理しやすいことは確かです。
\dも、半角数字にマッチするものであり、全角には対応していません。
jcode.pl で全角英数字を半角に変換してしまうのが簡単そうですね。
(全角で入力させたいのは出力の関係ですか?それでも、チェック時だけ
半角に変換したものを使うのは別に変なことではありません)

require 'jcode.pl';
$check_input = $input;
jcode::tr(\$check_input, '0-9', '0-9');
これで半角数字が$check_inputに入りますから、
if ($check_input =~ /^\d+$/) {
$other2 = '○';
elsif ....
などとすればいいでしょう。なお、固定文字列との比較のときは、確かに
正規表現のマッチングでも同じ効果が得られますが
$input eq '出荷なし'
と「eq」を使ったほうが効率が良いです。

まず入力ページの設計として、日付かそうじゃないかを分けたほうがいいと
思いますが…。
ラジオボタンで「出荷なし」と「日付入力」を選ばせ、
日付入力をチェックしたときだけテキストボックスが有効になるように…。
そうすれば、必ずテキストには日付だけがくるということになります。

ほんとうは、できれば日付も選択式にして、余計な文字を入力できない
ような仕組みが望ましいのですが。日付の形式も人によってばらばらですよね?
「平成13年五月28日」とか「2001/05/28」とか。
「全角でこのフォーマットでお願いします」と但し書きすればいくらか
ミスは減るでしょうが…。


  • 回答No.1
レベル11

ベストアンサー率 33% (149/439)

こんにちは。
プログラマとして、6年程勤務してきた者です。
答えになっていないかもしれませんが、
参考までに・・・。

日付ならば→日付の関数に値を参照させ、
Trueであれば、’○’
Falseであれば、’-’
としたらどうでしょうか?
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ