2010-11-23 5 views
2

iPhoneでRuby on Railsアプリケーションを表示しているときにビューを分離する方法をオンラインで見つけ出し、ユーザーエージェントを解析してこれを検出します。以前のバージョンでは、自分のアプリケーションに必要なHTML5 Webソケットをサポートしていないため、特にiOS 4.2以降をターゲットにしています。ユーザーエージェントのRegexによる解析

これまでのところ、私は/(iPhone.+OS.+4_2.+Safari)/を解析していますし、御馳走を動作するようですが、私が午前問題は、あなたがベータ版やOSの将来のバージョンを使用していた場合、ユーザーエージェントは4_2が含まれていないかもしれないということですが、それがWebをサポートすることが可能ソケット。 4または大きな

  • (?オプション)何が続くが、
  • がある場合

    • 私の質問は、私は次のような結果を持っている文字列を解析できる方法..です私の正規表現はひどいので、疑問の言い訳は:-)

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

    答えて

    0

    それは「確実」ユーザーエージェント文字列を解析するために、実際にはできません。いくつかの一般的なUser-Agent文字列はHTTP 1.1(私はRFC番号を忘れる)WRTに括弧(。ユーザーエージェントのスニッフィングは、特定の機能を「ホワイトリストに登録」したいときや、他のユーザーよりも(特にMicrosoftが行っているときなど)一部のブラウザの優遇措置についての苦情につながり、誰かが巨大な正規表現を更新しなければならないときに、

    ブラウザでサポートされている機能を検出するには、実際にはJavaScriptが必要ですか?

    でも、; *CPU +iPhone +OS +(4_(2|[3-9]|\d\d)|[5-9]|\d\d)\[0-9a-zA-Z_]* +like +Mac +OS +X *;のようにすることができます。

    0

    これは技術的には可能ですが、すべての将来のバージョン番号を明示的に指定する必要があります。 regexはテキストマッチングツールです。 「この数がこの数より大きい場合はtrueを返し、小さい場合はfalseを返す」などのロジックを含める簡単な方法はありません。あなたはおそらくちょうど数字の文字列([0-9]+_[0-9]+または何か)を抽出し、その出力に論理をしたいと思うでしょう。

    0

    ([5-9]|\d\d)[^+]*

    関連する問題