FormIO 入力書式−概要
入力書式は、日常生活で一般的に使用されるものは大体サポートされています。
このドキュメントはユーザーズマニュアルですので、入力書式の仕様も一応記載しますが(エクセル5では入力書式の記載は全くありません)、この関数を使用してプログラムを書くユーザーも、さらにそのプログラムを使用するエンドユーザーも、特に入力書式を意識する必要はないでしょう。 FormIOは、入力された文字列を、まず「数値」として評価しようとします。 「数値」のなかでも、まず数学的書式の「通常数値」として評価しようとし、それが駄目な場合には、「日付時刻」として評価し「シリアル値」を得ようとします。これらが全て駄目な場合のみ、そのまま文字列として評価します。 「数値」として評価する場合には、全角・半角、英大文字・小文字の区別はしません。また、元の文字列に対して以下の加工をします。
<1>は「12,345」でも「12345」でも同じに扱うということです。また、通常そのような入力はしませんが「,1,,2,,,345,,,」といった入力でも構いません。エクセル5でも概ね同様ですが、妙な制約があります(詳細は省略)。 <2>は簡単にいえば「無意味な空白は無視する」ということなのですが「何が無意味か」を表現するとこのようになります。以下に例をあげておきます。
<b> 「 94 - 8 - 25 」 = 「94-8-25」 <c> 「 0: 1: 2」 ≠ 「0:1:2」 <d> 「25 AUG PM 6」 = 「25AUG PM6」 <e> 「25 AUG PM 6」 ≠ 「25AUGPM6」 <f> 「25 AUG 6 PM」 = 「25AUG 6PM」 <g> 「25 AUG 6 PM」 ≠ 「25AUG6PM」 もっとも、日付は0埋めの「94-08-25」といった書式と同様に、空白埋めの「94-8-25」といった書式もよく利用されますが、時刻は<c>のような例は両辺とも一般的ではなく「00:01:02」といった書式が一般的ですから、<c>が「≠」でも支障はないはずです(ただし右辺のような入力も正しく評価されます)。 <d>〜<f>については若干の説明が必要です。「英数字−英数字間」の空白は「無視されない」わけですから、「25」と「AUG」の間や「PM」と「6」の間も「無視されない」はずです。実際処理の第1段階では無視されません。<d><f>の右辺のように評価されるのは、内部的に「日付」と「時刻」が分離されてからのことです。分離後には「英数字−英数字間」ではなく、「英字−英字間」と「数字−数字間」の空白のみ「有意な空白」とみなされ、それ以外の空白は無視されます。 ※参照(入力書式) |