簡體   English   中英

帶有參數的URL的正則表達式特定字符串

[英]regex specific string out of URL with paramenters

請在以下網址的參數部分內實現字符串“ unser-leitbild.html”。

/folderone/foldertwo/filename.php?parameter=http%3A%2F%2Fwww.igmetall-sprockhoevel.de%2Fueber-uns%2Funser-leitbild.html&utf8=0&dir=sprockhoevel&updateJquery=jquery-1.6.2.min.js

這是我的要求:我正在尋找創建一個變量,該變量為我提供了來自FILENAME.html的FILENAME。 這里的特殊問題是,這需要從URL的parametersection中獲取。 FILENAME將始終以'.html'結尾

好的:我的目的是從上述URL接收字符串“ unser-leitbild”。 我們想使用javascript和/或正則表達式。

我這樣獲得了上述URL:

var URL = (location.pathname+location.search).substr(1); 
var filename = URL;
alert(filename);

但是,如何提取STRING的“ unser-leitbild”並獲取該String作為變量?

注意:實際的文件名將始終是filename.php。 但是filename.php在這里無關緊要!

提示一:我們始終需要搜索filename.HTML。 只能在參數部分中找到。

提示二:在參數部分中,我們總是會找到文件名'.html'。 html結尾將始終只出現一次。

我們想要找到文件名“ INSIDE THE PARAMETER-SECTION”,並提取不帶結尾的html文件的名稱。 在我們的示例中,應為:“ unser-leitbild”

結果='unser-leitbild'

為了幫助您入門,這是我未成功的嘗試http://pastebin.com/Mt2ZTUUb

您可以嘗試以下方法:

\?parameter.*(?:\/|%2F)([^.]*).html

說明

 const regex = /\\?parameter.*(?:\\/|%2F)([^.]*).html/g; const str = `/folderone/foldertwo/filename.php?parameter=http%3A%2F%2Fwww.igmetall-sprockhoevel.de%2Fueber-uns%2Funser-leitbild.html&utf8=0&dir=sprockhoevel&updateJquery=jquery-1.6.2.min.js`; let m; while ((m = regex.exec(str)) !== null) { if (m.index === regex.lastIndex) { regex.lastIndex++; } console.log(m[1]); } 

謝謝您的答復。

以下是一些反饋:我測試了您的解決方案,發現它的工作非常穩定。 我只是遇到了一個錯誤,該錯誤發生在首頁上,請參閱下文以了解詳細信息。 貫穿我的43頁:解決方案就像一個魅力! 我稍稍調整了代碼,直到代碼片段適用於我的生產環境:

     const regex = /\?url.*(?:\/|%2F)([^.]*).html/g;    

   var str = (location.pathname+location.search).substr(1);    

  let m;

  while ((m = regex.exec(str)) !== null) {
      if (m.index === regex.lastIndex) {
          regex.lastIndex++;
      }
  console.log(m[1]);
  }

在起始頁上發生唯一的意外問題,因為起始頁沒有文件名;)起始頁只有domain.com,沒有/index.html。 正則表達式無法找到文件名,僅僅是因為沒有文件名。 我能夠輕松解決這個小問題:我使用JQuery為起始頁創建了一個樣例,並且在所有頁面上都很好。 我真的很棒。 我只收到一個答案,但是那個答案完全是當場! 小牛真的花了時間深入研究我的問題,直到他完全理解了我眼前的問題。 小牛在他的第一個答案上解決了這個問題。 非常精確的答案,給我留下深刻的印象。 問題解決了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM