[regexp 6] Re: 整数を許可する表記方法

Takeda t_takeda25 @ hotmail.com
2005年 12月 2日 (金) 00:04:13 JST


こんにちは、真鍋です。

正規表現とは外れてしまいますが、とりあえずJavaScriptでの解決法として、
if (str != parseFloat(str)) {
    // エラー
}

というのでどうでしょう。
"1.0e+10"とかは考える必要はないですよね?

----- Original Message ----- 
From: "Yamamoto Atsushi" <atzy_y @ yahoo.co.jp>
To: <regexp @ bug.org>
Sent: Thursday, December 01, 2005 11:54 PM
Subject: [regexp 5] Re: 整数を許可する表記方法


> 山本です。
> 
> > すみません、「整数」の定義を忘れてしまったのですが、(WWWですぐに見つか
> > らず)お伝えしたかったところは
> >
> > ・10などの正の数値
> > ・210.132など小数点以下を含む数値
> > ・-10000など負の数値
> > ・-54.4など負の小数点以下を含む数値
> > を許可する表現でした。
> 
> 整数だと、ここでいうところの「小数点以下を含まない数値」ですね。
> 「整数」には0を含みますが、含んでいいですかね?
> 
> > > /0|(-?[1-9][0-9]*)/
> > > 
> > > 実際動かしてませんので表記ミスあったらごめんんささい。
> > > 
> > > 意図するところは
> > > 0または頭に-がつくかもしれない0以外から始まる数字
> > > と言ったところです。
> > 
> > ありがとうございます。
> > 10や-1でも「エラー」のアラートが出てしまうようです・・
> 
> それは、JavaScriptのifの条件が逆さまだからです。
> 
> > if( !str.match(/^-?(0|([1-9]\d*))(\.\d+)?$/)) {
> >     alert("エラー" + str);
> >     return 1;
> > }
> 
> 0を含んでいいならば上記のような感じですね。-0という表記もOKになります
> けど。
> 
> 山本 篤
> <atzy_y @ yahoo.co.jp>
> --------------------------------------
> STOP HIV/AIDS.
> Yahoo! JAPAN Redribbon Campaign 2005
> http://pr.mail.yahoo.co.jp/redribbon/
> 


regexp メーリングリストの案内