
No.2ベストアンサー
- 回答日時:
JavaScriptには詳しくないですが、perlだとこういう正規表現でお望み(と思われる)挙動になりました。
[0-9]{2,3}[\.][0-9]){1}([^0-9]|$)
---
? は先行文字クラスが0-1文字の意味だから、
[0-9]{2,3}[\.]?[0-9]? では、
- [\.]?は小数点があってもなくてもOKになる
- 同じく[0-9]?だと0から9があってもなくてもOKなので
結局、数字2~3桁と0文字以上の文字列すべてにマッチする。だから50aにもマッチする。
- [0-9]{2,3}[\.][0-9]){1}
こうすると良さそうに見えるが、12.34 にもマッチするする。つまり、12.3までマッチし、小数点以下2位の4があってはいけないという表現がなされていないので。
- [0-9]{2,3}[\.][0-9]){1}[^0-9]
これも12.1で改行の場合、[^0-9]の部分にマッチしないので逆にマッチしなくなる。
この回答へのお礼
お礼日時:2006/10/08 17:42
丁寧な回答&挙動までチェック頂き大変感謝です。
多少違いますが、指定頂いた正規表現を参考に作り直したところ、望んだ挙動を得ました。
ありがとうございました。
No.3
- 回答日時:
前提条件で確認したいことがあります。
・ある文字列がその条件を満たすことを確認できればよいのか
・小数部は必須か
123 とか 09 とかは許される?
・小数点のみで小数部なしの表記は許されるか?
12. とかは?
・000.0 とかいう表記も許容してよいのか
・文章では整数部三桁までと書かれているが、例示されている正規表現では
整数部は二桁もしくは三桁を受け付けるように見える。どちらが正しい?
あと、[] の中では . は特殊な意味を持ちませんのでエスケープの必要はありません。[.] か \. でOKです。
また、繰り返し指定で {1} とするのは意味がないです。単にその部分
正規表現が存在するということだけですから。
No.1
- 回答日時:
'50a'は'0-9'が2から3個に続く小数点が0または1個、それに続く'0-9'が0または1個という条件にマッチしています。
?は1個含むまたは含まないという意味で、必ず含まないという意味にはなりません。
参考URL:http://www.openspc2.org/JavaScript/data/regexp.h …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA/ Formatで文字列が...
-
正整数の半角数字かどうか判定する
-
全角カタカナ バリデーション...
-
漢字などを正規表現でパターン...
-
正規表現について
-
禁止文字チェック
-
C#でTextBoxに数値のみ入力可能...
-
CListCtrl の特定のセル(アイ...
-
Access VBAで、数字だけをチェ...
-
VBAによる第3、4水準文字の判定...
-
「終了していない文字列型の定...
-
gas 全角数字を半角数字に変換
-
JSPの処理の途中で、JavaScript...
-
csvファイルを読み込み、該当項...
-
以下のコードを実行しても、オ...
-
HTML上(javascript)からCGIを...
-
リクエスト結果が一瞬しか表示...
-
javascriptでフォルダ内のファ...
-
更新情報がなぜブラウザで更新...
-
デザイン時のVisible=Falseは実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAによる第3、4水準文字の判定...
-
エクセルVBA/ Formatで文字列が...
-
正整数の半角数字かどうか判定する
-
VB.NET2003 テキストボックスに...
-
「終了していない文字列型の定...
-
文字認証の問題
-
エクセル 半角英数6文字以上 ...
-
助けてください!出来ないと解...
-
入力チェック
-
VBを使ってのタイピングについて
-
Visual Basic 6.0 のテキストボ...
-
入力された文字を1文字ずつチ...
-
文字列の検索
-
javascript 文字列の最後から1...
-
メルアドをチェックする正規表現?
-
脳内メーカーや自己紹介工場
-
入力文字を瞬時に変える
-
AccessVBAで教えて下さい。
-
replaceで正規表現を利用したい
-
正規表現
おすすめ情報