7

JavaScriptのみを使用してURIがAndroidで機能することを検証するための堅牢な方法(正規表現である必要はありませんか?)は何ですか?

つまり、チェックは Android SDK 側の Java では行われません。JavaScript を使用して Web ページで実行されます。

編集:「Android で動作する」とは、Android がその URI を使用してインテントに応答するアクティビティを見つけることができることを意味します。

4

3 に答える 3

2

Javascript はバックエンドほど堅牢ではありませんが、まともな正規表現はたくさんあります。

これは、 JavaScript を使用して URL を検証しようとしている別の投稿で説明されています

私が思う最良の答えは以下です

誰かがJquery Validationプラグインについて言及しましたが、URLを検証したいだけならやり過ぎのようです。プラグインからの正規表現の行は次のとおりです。

return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);

入手元は次のとおりです: http://projects.scottsplayground.com/iri/

于 2012-07-17T18:15:45.110 に答える
0

URI (URL のスーパーセット) の適切な正規表現は、確かにhttps://github.com/jhermsmeier/uri.regexです。残念ながら、まだすべての種類の URI をカバーしているわけではありません。ただし、Chromeでは機能します。

より単純なバージョンはhttp://jmrware.com/articles/2009/uri_regexp/URI_regex.htmlで入手できます。複数行のため、ここに含めることができませんでした。

そして、ここでJUnitテストケースを使用した段階的な開発: http://timezra.blogspot.de/2010/05/regex-to-validate-uris.html これはここでは機能しません "無効な正規表現: 無効なグループ"

于 2013-04-02T16:06:10.050 に答える