無効にするスマイリースマイリーを全て表示するトピックのレビュー[quote="バッキー"][quote="zxcv"]せっかくweb標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。Javascriptの正規表現の仕様について確認なさってください。その上で、's123'.match(/\d*/)で空文字が返ってくるのが仕様どおりなのかそうでないのか考えてみてください。[/quote][quote="バッキー"][quote="zxcv"]せっかくweb標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。Javascriptの正規表現の仕様について確認なさってください。その上で、's123'.match(/\d*/)で空文字が返ってくるのが仕様どおりなのかそうでないのか考えてみてください。自動的にパースしないユーザエージェントを表示する認証コード認証コード:*上の画象に表示されている文字を入力してください。各文字は大文字・小文字の区別があります。さんが書きました:Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。JavaScriptの場合、標準でどう決められているか見付からなかったので自信が無かったのですが、最短マッチするか最長マッチするか予測困難では使えないですし、そもそもそんなのが標準にはならないはずですよね?JavaScriptはPerlではない。JavaScriptはECMAScriptをベースにしているので、ECMAScriptの仕様書に聞くしかない。RegExpオブジェクトに変換し、RegExp.exec()を呼ぶ、云々と書いてある。occurrencesの時は、長さをゼロにしてRegExp.exec()を一回だけCallし、結果はゼロか正の無限大、となにやら怪しげなことが書いてある。match」、と定義されている。gは、RegExp.globalに対応し、ここでECMAScriptの記述に遭遇。ここには、最短マッチだの最長マッチだのとは、書かれてはいない。Quantifierの「*」には、最短だの最長だのといった意味合いに対応するものは一切含まれていない。いう類のものは、RegExp.globalに分離してある。matchとはこれ如何、Firstは1からじゃないのかぃ、ってなチャチャは無し。Floorの違い、ってなことになるのかも。ま、単に、マニュアルをちゃんと読まないからそうなる、という話になるでしょう。b=Str(RegExpForDigit);とでもしてみるといいでしょう。JavaScriptには拡張が入っているので、ECMAScriptとは異なるものも多々あります。基本的なものはECMAScriptの厳密な規定にほぼ従っていますが、RegExpでも、少し拡張が入っていたと思います。何も調べずに、Perlと違う、ECMAScriptと違う、MSと違う、などと言って、bugzilla.mozilla.orgにバグを開かないでくださいね。[quote="zxcv"]Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。JavaScriptの場合、標準でどう決められているか見付からなかったので自信が無かったのですが、最短マッチするか最長マッチするか予測困難では使えないですし、そもそもそんなのが標準にはならないはずですよね?[/quote]JavaScriptはPerlではない。JavaScriptはECMAScriptをベースにしているので、ECMAScriptの仕様書に聞くしかない。RegExpオブジェクトに変換し、RegExp.exec()を呼ぶ、云々と書いてある。occurrencesの時は、長さをゼロにしてRegExp.exec()を一回だけCallし、結果はゼロか正の無限大、となにやら怪しげなことが書いてある。match」、と定義されている。gは、RegExp.globalに対応し、ここでECMAScriptの記述に遭遇。ここには、最短マッチだの最長マッチだのとは、書かれてはいない。Quantifierの「*」には、最短だの最長だのといった意味合いに対応するものは一切含まれていない。いう類のものは、RegExp.globalに分離してある。matchとはこれ如何、Firstは1からじゃないのかぃ、ってなチャチャは無し。Floorの違い、ってなことになるのかも。ま、単に、マニュアルをちゃんと読まないからそうなる、という話になるでしょう。b=Str(RegExpForDigit);とでもしてみるといいでしょう。JavaScriptには拡張が入っているので、ECMAScriptとは異なるものも多々あります。基本的なものはECMAScriptの厳密な規定にほぼ従っていますが、RegExpでも、少し拡張が入っていたと思います。何も調べずに、Perlと違う、ECMAScriptと違う、MSと違う、などと言って、bugzilla.mozilla.orgにバグを開かないでくださいね。さんが書きました:せっかくweb標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。Javascriptの正規表現の仕様について確認なさってください。その上で、's123'.match(/\d*/)で空文字が返ってくるのが仕様どおりなのかそうでないのか考えてみてください。[quote="zxcv"]せっかくweb標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。Javascriptの正規表現の仕様について確認なさってください。その上で、's123'.match(/\d*/)で空文字が返ってくるのが仕様どおりなのかそうでないのか考えてみてください。\d*を単独で使用した場合、先頭のアルファベットを調べた段階で「0文字以上の数字」という条件が成立するので空文字が返ります。「最長マッチ」という用語を理解されていない様ですね。最長マッチ、""が最短マッチです。「最長マッチ」や「最長一致」という語が、世間でどう使われているか確認された方が良いですよ。web標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。\d*を単独で使用した場合、先頭のアルファベットを調べた段階で「0文字以上の数字」という条件が成立するので空文字が返ります。[/quote]「最長マッチ」という用語を理解されていない様ですね。最長マッチ、""が最短マッチです。「最長マッチ」や「最長一致」という語が、世間でどう使われているか確認された方が良いですよ。web標準に移動して頂いたのですから、JavaScriptの仕様という観点でのご意見を希望します。最短マッチ再確認してみました。空文字が返ってくるのは仕様どおりで正常な動作でした。空文字が返ってくるのは正常な動作のような気がしてきました。Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。\d*を単独で使用した場合、先頭のアルファベットを調べた段階で「0文字以上の数字」という条件が成立するので空文字が返ります。Perlの正規表現の仕様でしょう。空文字が返ってくるのは仕様どおりで正常な動作でした。空文字が返ってくるのは正常な動作のような気がしてきました。[/quote]Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。\d*を単独で使用した場合、先頭のアルファベットを調べた段階で「0文字以上の数字」という条件が成立するので空文字が返ります。Perlの正規表現の仕様でしょう。空文字が返ってくるんですよ。Javascriptの正規表現ではこれが仕様なのかもしれません。1が返ってくるんですよね。空文字が返ってくるんですよ。Javascriptの正規表現ではこれが仕様なのかもしれません。1が返ってくるんですよね。空文字が返ってくるのは正常な動作のような気がしてきました。Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。空文字が返ってくるのは正常な動作のような気がしてきました。[/quote]Perlの場合だと、空文字列が帰るならバグですね。最長マッチと決められているからです。最短マッチもしかするとバグは私の勘違いかもしれません。空文字が返ってくるのは正常な動作のような気がしてきました。返ってきますので、\d+を使用なさってください。するとバグは私の勘違いかもしれません。空文字が返ってくるのは正常な動作のような気がしてきました。返ってきますので、\d+を使用なさってください。最短マッチ追試ありがというございます。バグですかぁ・・・しょっちゅう起こるバグなら大騒ぎになってる筈だと思ったのですが、意外に影響が少ないのでしょうかね。内部的な管理番号を抽出する処理がうまく動かず、かなり悩みました。早く直って欲しいです。追試ありがというございます。バグですかぁ・・・しょっちゅう起こるバグなら大騒ぎになってる筈だと思ったのですが、意外に影響が少ないのでしょうかね。内部的な管理番号を抽出する処理がうまく動かず、かなり悩みました。早く直って欲しいです。最短マッチ追加情報です。123が返ってきました。123が返ってきました。25.0.1で試してみましたが正規表現のバグっぽいですね。空文字が返ってきます。123が返ってきました。s123が返ってきました。25.0.1で試してみましたが正規表現のバグっぽいですね。空文字が返ってきます。123が返ってきました。s123が返ってきました。実行すると、空文字列がalertされます。実行すると、空文字列がalertされます。