• ベストアンサー

RFC2396 - Uniform Resource Identifi

RFC2396 - Uniform Resource Identifiers (URI): Generic SyntaxとTS X 0097:2004を読み進めています。作成しているウェブアプリケーションにおいて、ユーザから入力されたURLの正誤判定を正規表現を用いて行うためです。 domainlabel = alphanum | alphanum *(alphanum | "-") alphanum この行に関して、約物ハイフンマイナスはdomainlabelの一文字目と最後の文字として使ってはいけませんよという理解で間違いないでしょうか? 加えて、この文書に対する理解をより深める参考になりそうなウェブページなど紹介していただけると助かります。 当方、仕事ではありませんが趣味で10年ほどウェブアプリケーションを開発しています。HTMLやCSSはW3Cの仕様書を読んで理解することができます。スクリプトはPHP、Perl、JavaScriptを使っており、ECMA-262の仕様書を読むことができるくらいの知識はあります。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

解釈は良いけど、RFC2396は古いんでRFC3986を参照すべきじゃないかと思います。 domainlabelは国際化ドメイン対応で変わっているようですし。

Mocchi113
質問者

お礼

ざっとRFC3986を読んでみました。 確かに仕様の中に「この文書はRFC2396とRFC1738を統合して、すべてのURIに対応する標準書式を定義するものである」とありますね。ざっと見たところ、IPv6に対応する書式と、国際化ドメインに体操するためにUTF-8にしたがって%でエスケープされた16進数を入れてもよい、といった変更がなされてますね。使える文字種にも変化がありました。「"-", "_", ".", "~"」以外の約物がreservedになってます。 加えて、AppendixのBに正規表現が載っているので、今回はこれを参考にできました。 どうもありがとうございました。

関連するQ&A

  • RFC?

    今、メール送信処理のプログラムをみているのですが、 RFCに準拠していないヘッダを削除するように言われているのですが、 どこをみていいのかわかりません。 ちなみに送信している部分などは理解していて、 RFC(?)とかそれに関することがまったくわかりません。 ご存知の方、またはサイトを知っている方宜しくお願いします。

  • RFCについて

    Timestamps (RFC1323) = OFF 上記のこれはなんですか? またこれをONにすると、どうなるのでしょうか? そして、どうすればONになるのか教えてください。 Windows98 VAIOのLシリーズ ODN12メガでイーアクセスを使用してます。

  • RFC2510について

    RFC2510の翻訳版を探しているのですが見つかりません。 どなたか知っている方いらっしゃいますか??

  • rfc2822について

    RFC2822をみて、メールヘッダーの解析ルーチンを作っています。 コンパイラコンパイラにかけるために 以下のように書き直しました。 ふと気がついたのですが boundary= をターミナルとして扱わないばかりか 上の語句は現れないのです。 ヘッダー解析だから必要なくて body の解析では 別途必要となるのでしょうか? RULES EMail = message. message = (fields ) [CRLF body]. body = {({text} CRLF)} {text}. fields = {(trace {(resentdate | resentfrom | resentsender | resentto | resentcc | resentbcc | resentmsgid)})} {(origdate | from | sender | replyto | to | cc | bcc | messageid | inreplyto | references | subject | comments | keywords | optionalfield)}. 以下省略 よろしくお願いします。

  • resource

    ・最近dvdを増設したのですが、パソコンを立ち上げると resource library not foundと出るのですが何でしょうか?

  • URLに含まれる可能性がある文字列は?

    こんにちは、よろしくお願いいたします。 ※カテゴリーが分からなかったのでこちらに質問させていただきました。 カテ違いならご指摘下さい。 複数行のテキストファイルの内容からURLを抽出するエクセルVBAを作成しようとしています。 (質問の趣旨はエクセルVBAについてではありません) 各行の内容はURLのみの行、URLが他の文字列に挟まれている行、URLは全く含まれていない行 があります。 URLがハイパーリンクされないようにするため、あるいはURLとなされないようにするために ttpやtpで始まるものは無視してよいです。 「ht tp」や「h ttp」としたものはURLとみなします。(スペースを削除するので問題とならない) 問題となっているのは、httpが含まれると判断した行を「http」で区切った右側のどこまでを URLと看做すか、です。 そこでネット検索してみましたが、「URLで使用できない文字列」というのはいくつか見つかり ましが、たとえば、予約語なのでURLに使用できない文字列は使用できないだけであってURLに は含まれる可能性があります。 「URLに含まれる可能性がある文字列」を調べたいのですがネット検索で見つかった物は明確 に示したものが見つからなかった(検索の仕方が悪かった、あるいは明確に示したものがあって も見方が悪くて見落としていた、というのもあるかと思います)ので開発者や詳しい者でなくて も理解できるように書かれたHPがあれば紹介していただきたいです。直接解説していただくの は大いに歓迎します。 いままでネット検索して見たことがあるページです。 見てもいまいち理解できませんでした。 http://datatracker.ietf.org/doc/rfc3986/ http://datatracker.ietf.org/doc/rfc3986/?include_text=1 http://jbpe.tripod.com/rfcj/rfc2396.ej.sjis.txt http://okwave.jp/qa/q247115.html http://www.ipentec.com/document/document.aspx?page=web-url-invalid-char&culture=ja-jp http://www.ipentec.com/document/document.aspx?page=web-url-invalid-char&culture=ja-jp ↑を見た限りでは、URLに含まれる可能性がある文字列は 問題なく使える文字列 A~Z A~z 0~9 使用可能な文字列 - _ . ! * ' ( ) 予約語として定義されている文字 使用できるがディレクトリ名やファイル名には使用できない ; / ? : @ & = + $ , % ところが、 >URLに含めることのできない文字 >以下の文字はURLに含まれない文字です。 \ ' | ` ^ " < > ) ( } { ] [ と書いてあり、 ) ( は「使用可能な文字列」と「URLに含めることのできない文字」 の両方に書かれており混乱しております。 結局のところ、URLに含まれる可能性がある文字列が把握しきれ ておりません。 ご教示よろしくお願いいたします。

  • Unicode規定の Zs (space separator) とは

    Unicode規定の Zs (space separator) とは ECMA262 Edition 5 規定の String.prototype.trim() を未対応ブラウザ用に実装しようとしています。 仕様には「WhiteSpace, LineTerminator を取り除く」との記述がありました。 ------- 15.5.4.20 String.prototype.trim() ...(中略)... 3. Let T be a String value that is a copy of S with both leading and trailing white space removed. The definition of white space is the union of WhiteSpace and LineTerminator. http://www.ecma-international.org/publications/standards/Ecma-262.htm ------- WhiteSpace, LineTerminator はそれぞれ「7.2 White Space」「7.3 Line Terminators」で定義されており、概ね理解しましたが、WhiteSpaceで定義されている「Zs」の文字が何であるか、で詰まりました。 Zs は表で記述されていますが、該当部だけ引用すると次のように書かれています。 (表をテキストで書くのは難しいのでフォーマットを変えています) ------- 7.2 White Space ...(中略)... [Code Unit Value] Other category "Zs" [Name] Any other Unicode "space separator" [Formal Name] <USP> ECMAScript implementations must recognize all of the white space characters defined in Unicode 3.0. Later editions of the Unicode Standard may define other white space characters. ECMAScript implementations may recognize white space characters from later edition of the Unicode Standard. http://www.ecma-international.org/publications/standards/Ecma-262.htm ------- 機械翻訳を頼りに翻訳してみたところでは、「Unicode 3.0 定義の空白文字」と「最新の Unicode 定義の空白文字」を認識しなければならない、と読めました。 Unicode Consortium http://www.unicode.org/ 公式サイトらしき場所は発見しましたが、ここからどこを読めば Zs (space separator) が確認できるのか、がわかりません…。 (ぐぐってみると、それらしき情報がHITするのですが、できれば公式文書で確認したいと思っています。) JavaScript, Regex, and Unicode http://blog.stevenlevithan.com/archives/javascript-regex-and-unicode Unicode Characters in the 'Separator, Space' Category http://www.fileformat.info/info/unicode/category/Zs/list.htm unicode.org のどこに Zs (space separator) に関する記述があるのでしょうか? # 英語サイトに関する質問なので [英語] カテゴリにすべきか迷いましたが、内容は専門的な事なので [JavaScript] カテゴリとしました。 # 問題があるようでしたら、別の形で再質問したいと思います。

  • index.rdf' の実行エラー

    http://~/index.rdfを見ようとすると XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。 テキストの内容に無効な文字が見つかりました。リソース 'http://~/index.rdf' の実行エラーです。ライン 11、位置 9 <title>< ソースは以下のとおりです。 <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:cc="http://web.resource.org/cc/" xmlns="http://purl.org/rss/1.0/"> <channel rdf:about=http://~/> <title> <title>に書いてある文字が全角、たとえば「サッカー!」であると上記のようにエラーが出てしまいます。 このエラーは全角文字を入れると発生するのですか? それとも何かのタグが抜けているのですか? すいませんが教えてください。

    • ベストアンサー
    • XML
  • マウスでダブルクリックすると文字列が切り出されるという機能

    例えば、『質問の要点となる言葉をもりこむと、質問内容が理解されやすく、すばやい回答につながります。』という文章の上で… 1)『質』の上でマウスをダブルクリックすると『質』だけが選択される。 2)『を』の辺りでマウスをダブルクリックすると『をもりこむと』という文字列が切り出されて選択されます。 各種アプリケーションなどで広く現われる、このマウスでダブルクリックすると一定の文字列が選択される機能について、(おそらくWindowsの仕様の一部かと思いますが)何か名称等があるのでしょうか。 また、沿革等の周辺知識についてお教えください。

  • source と resource

    source という単語と resource という単語の意味の違いがわかりません。 ニュアンス、というか、感覚的に違いをつかみたいです。 よろしくお願いします。