0

StackOverflow で、MIME コンテンツ タイプの「2 番目」の部分を取得する例をいくつか見てきました。私が望むのは、次のものを提供する場合です。charset=ISO-8859-1

私はただ返したい: html

これまでに見た正規表現は次のようなものです。

/[^text/]*$/

しかし、私のテストでは、一致した結果は単に「ml」です

文字列の「text/」の後にあるものは何でも欲しいのですが、何らかの理由で取得できるのは最後の 2 文字だけです。明確にするために、次のような他の多くの投稿を調べました。

正規表現を使用して文字列の 2 番目の部分を取得する

これはまさに私が望むものだと思いましたが、私のテストでは、正規表現が機能しないことが示されています。

編集して質問を広げます。jquery オブジェクトで返される Content-Type の一部を分離しようとしています。

    var regex_content = /[^text/]([^;\s]+)/
    var contentType = jqXHR.getResponseHeader("Content-Type");
    alert(contentType.match(regex_content));

他の誰かが提供した regex_content では、コンテンツ タイプが text/html の場合、html,tml が返されます。charset=ISO-SOMENUMBERS. htmlのみを一致させたいと思います。

4

2 に答える 2

1

正規表現は次のようになります。

^text/([^;\s]+)

最初のグループをキャプチャします。

また、正規表現には / があるため、new RegExp()コンストラクターを使用します。

var re = new RegExp("^text/([^;\\s]+)");
于 2013-05-28T20:14:13.757 に答える
0

正規表現の主な問題は、文字tex、および を/個別に無視し、他の文字と一致することです。の後に続くグループと一致させたい/ので;、正規表現は次のようになります。

/(?:[^/]*\/)([^;]*)/

これには、最初(?:[^/]*/)の./([^;]*);

于 2013-05-28T20:14:33.907 に答える