[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 メーリングリストの案内