• 締切済み

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

あるテキストボックスに入力されているのが、「日付」ならば(○)を「出荷なし」ならば(-)をというように表示させたいのです。 日付は全角で入力させたいのですが、どうしたらいいのでしょう。 教えて下さい。 if($input=~/\d\d\d\d\d\d/){ $other2 = '○'; }elsif($input=~'出荷なし'){ $other2 = '-'; }elsif($input=~'未出荷'){ $other2 = '×'; }elsif($input=~' '){ $other1 = '※'; }

  • bori
  • お礼率67% (40/59)
  • Perl
  • 回答数2
  • ありがとう数3

みんなの回答

回答No.2

日付のフォーマットは決まっているのですか?それならその正規表現を 使ってそのようにプログラムすればよろしいと思います。 正規表現の書き方に悩んでらっしゃるのなら、まずフォーマットを お教えください。 また、全角よりも半角英数字のほうがなにかと処理しやすいことは確かです。 \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」とか。 「全角でこのフォーマットでお願いします」と但し書きすればいくらか ミスは減るでしょうが…。

  • Good-S15
  • ベストアンサー率33% (149/439)
回答No.1

こんにちは。 プログラマとして、6年程勤務してきた者です。 答えになっていないかもしれませんが、 参考までに・・・。 日付ならば→日付の関数に値を参照させ、 Trueであれば、’○’ Falseであれば、’-’ としたらどうでしょうか?

関連するQ&A

  • 日付の正規表現

    C#で日付の正規表現をしておりますが、全角括弧((3))の処理がうまく行えずに 困っております。 下記のいずれかにマッチすればエラーメッセージを表示させないと言う処理を行っています。 マッチさせたいパターン (1)2011/01/01 (2)2011/01/01(月) ※半角カッコ (3)2011/01/01(月) ※全角カッコ (1)\d{4}/\d{1,2}/\d{1,2} (2)\d{4}/\d{1,2}/\d{1,2}\([月火水木金土日]\) (3)\d{4}/\d{1,2}/\d{1,2}([月火水木金土日]) if (System.Text.RegularExpressions.Regex.IsMatch( TextBox1.Text, @"\d{4}/\d{1,2}/\d{1,2}") || System.Text.RegularExpressions.Regex.IsMatch( TextBox1.Text, @"\d{4}/\d{1,2}/\d{1,2}\([月火水木金土日]\)") || System.Text.RegularExpressions.Regex.IsMatch( TextBox1.Text, @"\d{4}/\d{1,2}/\d{1,2}([月火水木金土日]") ) }else{ MessageBox.Show("エラー"); } お分かりの方がいらっしゃいましたらご教授頂けないでしょうか。 よろしくお願い致します。

  • VBSで指定した日付のファイルのみを抽出するには

    以下の内容について教えていただけないでしょうか? ○実施したいこと ・インプットボックスに日付を入力 ・指定したフォルダに移動 ・インプットボックスで入力された日付を含むファイルのみ抽出  (ファイル名: **130503**) →ファイルは0個、1個、複数個の場合あり ・抽出したファイルを別フォルダにコピー ○困っていること ・入力した日付をパラメータとして、ファイル検索を行い該当するファイルを  抽出する方法 ※入力する日付は130503のようにしたいです。 ○現在、作成中のソース Option Explicit Dim hizuke Dim fs Do '日付を入力するためのインプットボックスを表示 hizuke = InputBox("日付を入力してください。" &_ vbCR & vbCR &_ "例)2000/01/01") '「キャンセル」または未入力で終了 If hizuke = "" Then Exit Do '正しい日付が入力された場合 ElseIf IsDate(hizuke) then MsgBox "テスト(正しい日付が入力されました。)" 'オブジェクトを作成する Set fs = CreateObject("Scripting.FileSystemObject") 'ファイルをコピーする fs.CopyFile "D:\test130503.log","D:\test\" '日付でなかったら、注意を表示して、インプットボックスに戻る Else MsgBox "入力した値が不正です。" End If Loop 宜しくお願いします。

  • 日付のエラー

    aspx(vbscript)でプログラムを作っています。 ある申請書を作っているのですが、その中で テキストボックスに日付を入力して、その日付が[今日]より 前だとエラーになるというコードを作りたいのですが、 If Trim(textbox1.value) <>"" and Datevalue(textbox1.value) < Date Then msgbox "日付が違います。" End If としたのですが、テキストボックスに何も入力しないとエラーになって動いてくれません。テキストボックスに入力すればちゃんと動きます。 この項目は必須項目ではないのでテキストボックスに入力せずに申請する場合もあるので困っています。どのようにすればちゃんと動作してくれるのでしょうか。  

  • Excel VBA テキストボックスに当日の日付

    Excel 2013において、VBAで入力フォームを作成中の初心者です。 入力フォームの中に日付の項目があり、テキストボックスに手入力しています。 そのテキストボックスに当日の日付を自動で表示させたく、ネットで調べ試しましたが、うまくいきません。 やりたいこととしては、テキストボックスに今日の日付を自動的に和暦で表示させ、その日付を変更する場合には、「2016-12-03」などと入力後、和暦に自動的に変換して表示させたいのです。 手入力において、「2016-12-03」と入力後、自動的に和暦に変換するコードはネットで見つけることができ、うまくいったのですが、当日の日付を自動的に表示させる方法がわからずにおります。 日付を手入力後、和暦で表示させるコードは以下のようにしてあります。 Private Sub textbox1_AfterUpdate() With Me.textbox1 If IsDate(.Value) Then .Value = Format(.Value, "ggge年m月d日") End If End With End Sub どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • 全角スペースを取り除きたい

    こんにちは。 フォームのテキストボックスで全角スペースが入力され時、全角スペースを削除したいんです。 あいう△えお → あいうえお のように いろいろ調べてみたのですがわからないのでお願いします。

    • ベストアンサー
    • PHP
  • Access 今日の日付を和暦数字を全角で表示

    Access2013 レポートに今日の日付を、和暦(平成27年4月27日)で、そして、数字を全角で表示させる設定方法を教えてください。 テキストボックスのコントロールソースに記入する数式を教えてください。 よろしくお願いします。

  • access2007 日付 全角

    レポートにテーブルの値を表示する際に 日付を和暦で数字部分も全角で表示する方法がわかりません。 今の現状はプロパティの書式に gggee\年m\月d\日 といれているだけです

  • 一致しない場合の処理・・

    エクセル2003です。 Sub 練習()  入力 = UserForm1.TextBox1.Text If 入力 = "" Then     MsgBox"日付を入力してください" End Sub この状況の場合、テキストボックスに何も入力しないと 日付を入力してくださいと出るような状態です。 これを、テキストボックスに ○/△の形式で入力されていない場合は 日付を正しく入力してくださいと表示したいのですが どうしたらいいでしょうか? できれば、AB/CDの形でABCDがとり得る範囲外の場合 に日付を正しく入力してくださいと表示したいです Aのとり得る範囲は0,1 Bは0~9 Cは0~3 Dは0~9です

  • アクセスでの日付入力

    ACCESSで手間のかかる日付入力を出来るだけ簡単に入力できたらと考えています。 カレンダーコントロールを使用すると、日付入力のテキストボックスの数分カレンダーコントロールが必要になってしまうので、出来れば今日の日付を常に表示してボタンを使って前後の日付に変更出来るようにしたいと思っているのですが。 もしくは、コンボボックスのように矢印をクリックすると、カレンダーが出てくるのでも良いのですが。 何か良い方法があれば教えて下さい。

  • ポップアップウインドウで日数入力して日付を表示

    下記のようなものを作りたいと思っています。 1.呼び出し元のテキストボックスに日付を入力 2.「日数の指定」などのボタンを押す 3.日数を入力するためのポップアップウインドウ表示 4.テキストボックスに日数を入力して、決定ボタンを押す 5.1で入力した日から4で指定した日数分後の日付を呼び出し元の1とは別のテキストボックスに表示する。 1や4で入力する日付や日数のエラーチェックは考慮不要でいいです。 何か良い方法がございましたら、よろしくお願いいたします。

専門家に質問してみよう