function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
masakomasako 

IsNumber関数について

お世話になっております。

 

テキストボックスに入力された値を、数値だけ許可とし数値以外であればエラーを表示

というロジックを作っています。

 

IsNumberが使えるかと思い、色々と調べたのですが、

下記のエラーで解決せずに困っています。

 

Save error: Method does not exist or incorrect signature: IsNumber(String)

 

コントローラー

if(IsNumber(sDay)){

//ここに数値の時に行うコードを実装

}

 

基本的な事で申し訳ございませんが、よろしくお願い致します。 

 

 

 

yyuummaayyuummaa
Try{ }catch(Exception e){ } でエラーを拾い制御できると思います。
ikouikou

まぁ、そもそもApexにIsNumberなんてないですよね。

入力規則であればIsNumber関数が使えますが。

yyuummaayyuummaa

Apexにはないですね。失敬

Caseとかで制御可能ですね

masakomasako

yyuummaa様、ikou様

ご回答ありがとうございます。

 

下記で、IsNumber関数を見つけて使えると思っていたのですが・・・

http://developerforcejp.s3.amazonaws.com/books/cheatsheets/Formulas-cheatsheet_Ja.pdf

 

ikou様

入力規則で使う方法とは、どのような使い方をするのでしょうか?

 

知識不足で申し訳ございませんが、よろしくお願い致します。

 

yyuummaayyuummaa

if(IsNumber(TEXT(sDay))){

 //ここに数値の時に行うコードを実装

}

でもエラー出ますか?

ikouikou

リンク先の概要にも書いてありますが、これらの関数は数式、入力規則、ワークフロールール、Visualforce(Not Controller)で使えるものです。

 

入力規則は・・・・オンラインヘルプに詳しく載っています。

masakomasako

yyuummaa様

 

ありがとうございます。

早速試してみましたが、上記と似たエラーになりました。

Save error: Method does not exist or incorrect signature: TEXT(String)

masakomasako

ikou様

 

肝心な所を見落としていたようで、申し訳ございません。

オンラインヘルプの方で、入力規則を調べてみます。

 

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

ikouikou

今更だけどやるとしたらこんな感じでしょうか。

 

 

String sDay = 'a1';

try{
  Integer iDay = Integer.valueOf(sDay);
} catch(TypeException te){
  // エラー処理
  System.debug(te.getMessage());
}

 

 

timatima

カスタム項目のデータ型を数値にするのは、いかがでしょうか。

メッセージは指定できませんけれど、数値以外であればエラーになります。

 

Apexでやるなら、一つ前のikouさんの回答か正規表現でチェックするのが一般的なように思います。

masakomasako

ikou様

 

ありがとうございます。

コードも載せて頂きありがとうございます。

 

また何かあればよろしくお願い致します。

masakomasako

tima様

 

返信ありがとうございす。

 

カスタム項目のデータ型で指定出来れば良かったのですが、入力された値を変数でコントローラ側に渡して、

その数値を元に日付計算を行ったりしています。

 

すみません、話がズレてしまいましたがApex側でチェックしたいのでikou様のコードを参考にしたいと思います。

 

また何かあればよろしくお願い致します。

ikouikou

あ、そうか。

正規表現使った方がスマートかもしれませんね。