簡體   English   中英

如何在帶有url的正則表達式字符串的javascript中查找?

[英]How to find in javascript with regular expression string from url?

晚上好,我如何在javascript中找到帶有url地址的正則表達式字符串,例如我有url: http : //www.odsavacky.cz/blog/wpcproduct/mikronebulizer/並且我只需要最后一個斜杠之間的字符串(/ /) http://something.cz/something/string/在此示例中,我需要的單詞是mikronebulizer。 非常感謝您的幫助。

只是:

url.match(/([^\/]*)\/$/);

應該做。

如果要匹配(可選)不帶斜杠,請使用:

url.match(/([^\/]*)\/?$/);

在此處查看其運行情況: http : //regex101.com/r/cL3qG3

如果您提供了網址,則可以通過以下方式進行操作:

var url = 'http://www.odsavacky.cz/blog/wpcproduct/mikronebulizer/';
var urlsplit = url.split('/');
var urlEnd = urlsplit[urlsplit.length- (urlsplit[urlsplit.length-1] == '' ? 2 : 1)];

這將匹配最后一個斜杠之后的所有內容(如果有),否則將匹配倒數第二個和最后一個斜杠之間的部分。

您可以將正則表達式與組配合使用。

用這個:

/([\w\-]+)\/$/.exec("http://www.odsavacky.cz/blog/wpcproduct/mikronebulizer/")[1];

這是一個jsfiddle顯示它的作用

這部分: ([\\w\\-]+)

  • 表示至少一個或多個字母數字,下划線和連字符,並將其用作第一個匹配組。

后跟/

然后最后是: $

  • 這意味着該行應以此結尾

.exec()返回一個數組,其中第一個值是完全匹配項(即:“ mikronebulizer /”),然后是其后的每個匹配組。

  • 因此.exec()[1]返回您的值:mikronebulizer

還有其他需要考慮的問題-是的,純正則表達式方法可能更容易(麻煩,而且更快),但是我想將其包括在內只是為了指出window.location.pathName

function getLast(){
    // Strip trailing slash if present
    var path = window.location.pathname.replace(/\/$?/, '');
    return path.split('/').pop();
}

或者,您可以使用split

var pieces = "http://www.odsavacky.cz/blog/wpcproduct/mikronebulizer/".split("/");

var lastSegment = pieces[pieces.length - 2];

// lastSegment == mikronebulizer
    var url = 'http://www.odsavacky.cz/blog/wpcproduct/mikronebulizer/';
    if (url.slice(-1)=="/") {
      url = url.substr(0,url.length-1);
    }
    var lastSegment = url.split('/').pop();
    document.write(lastSegment+"<br>");

暫無
暫無

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

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