0

私は次のリンクを持っています:

sitename.com/Default.aspx?PageID=13078494

「PageID=13078494」を取得したいと思います。これは私がこれまでに持っているものです:

var url = "sitename.com/Default.aspx?PageID=13078494";    
urlmatch = url.match([PageID=13078494]);
urlmatch[0];

これは私がやろうとしていることの適切な表現ですか?

4

5 に答える 5

2

正規表現とその構文が間違っています。

より良い方法は、正規表現をまったく使用しないことです。.split()代わりに使用してください:

var urlmatch = url.split('?')[1];

これがフィドルです:http://jsfiddle.net/qpXNU/

于 2012-11-12T02:38:05.917 に答える
2
var myregexp = /[?&]PageID=(\d+)/i;
var match = myregexp.exec(url);
if (match != null) {
    //This is if your match it successful
    result = match[1];
} else {
    //This is if url doesn't match
    result = "";
}

これは、PageIDがどこにあるかに関係なく機能します。一致します

  • sitename.com/Default.aspx?PageID=13078494
  • any.org/Default.aspx?PageID=13078494
  • sitename.com/Default.aspx?foo=bar&PageID=13078494
  • sitename.com/Default.html?foo=bar&PageID=13078494&bar=foo
  • Default.html?foo = bar&PageID = 13078494&bar = foo

重要なのは、それが一致しないことです

  • sitename.com/Default.aspx?NotThePageID=13078494

または、チェックせずに、単純 url.match(/[?&]PageID=(\d+)/i)[1]に、しかし、あなたの確かなものが常に一致しない限り、私はそれに対してアドバイスしたいと思います。

于 2012-11-12T02:46:54.603 に答える
1

次の正規表現を試してください。これにより、PageIDが抽出され、最初の一致グループに配置されます。

var url = "sitename.com/Default.aspx?PageID=13078494";
urlmatch = url.match(/PageID=(\d+)/);
alert(urlmatch[1]);​ // 13078494
于 2012-11-12T02:40:36.150 に答える
0

URLの処理に関しては、ブラウザはかなり優れています。

次のように、文字列を実際のURLに変換する必要があります。

var toURL = function (href) {
    var a = document.createElement('a');
    a.href = href;
    return a;
};

次に、ブラウザの組み込みの解析機能を使用します。

var url = toURL('sitename.com/Default.aspx?PageID=13078494');
alert(url.search);
于 2012-11-12T04:04:11.817 に答える
0

特定の値と一致する場合は問題ありません。それ以外の場合は、以下を使用してpageIDの任意の桁数と一致させます。

      /PageID=\d+/

なので:

    var url = "sitename.com/Default.aspx?PageID=13078494";
    var urlmatch = url.match(/PageID=\d+/);
    alert(urlmatch[0]);

または、pageIDの8桁を正確に一致させるには、次を使用します。

      /PageID=\d{8}/ 

なので:

    var url = "sitename.com/Default.aspx?PageID=13078494";
    var urlmatch = url.match(/PageID=\d{8}/);
    alert(urlmatch[0]);
于 2012-11-12T02:38:56.317 に答える