2

javascript/jquery を使用して、URL に出現する可能性のある製品番号を削除する必要があります。

URL は次のようになります: http://www.mysite.com/section1/section2/section3/section4/ 01-012-15_157188​​4

URL の最後の部分は、常に 2 桁の後に - が続くフォーマットになっているので、正規表現でうまくいくのではないかと考えていました。最後の/の後にすべてを削除する必要があります。

製品が階層の上位または下位にある場合にも機能する必要があります。

これまでのところ、location.pathname と分割を使用してさまざまなソリューションを試してきましたが、製品階層の違いと配列の処理方法に行き詰まっています。

4

5 に答える 5

7

デモ

var x = "http://www.mysite.com/section1/section2/section3/section4/01-012-15_1571884";
console.log(x.substr(0,x.lastIndexOf('/')));
于 2013-09-23T14:32:52.933 に答える
1
var a = 'http://www.mysite.com/section1/section2/01-012-15_1571884',
result = a.replace(a.match(/(\d{1,2}-\d{1,3}-\d{1,2}_\d+)[^\d]*/g), '');

JSFiddle: http://jsfiddle.net/2TVBk/2/

これは、正規表現をテストするための非常に優れたオンライン正規表現テスターです: http://regexpal.com/

于 2013-09-23T14:31:59.900 に答える
0

これは、要求された製品 ID がない状況を適切に処理するアプローチです。 http://jsfiddle.net/84GVe/

var url1 = "http://www.mysite.com/section1/section2/section3/section4/01-012-15_1571884";
var url2 = "http://www.mysite.com/section1/section2/section3/section4";

function removeID(url) {

    //look for a / followed by _, - or 0-9 characters, 
    //and use $ to ensure it is the end of the string
    var reg = /\/[-\d_]+$/;

    if(reg.test(url))
    {
         url = url.substr(0,url.lastIndexOf('/'));   
    }
    return url;
}

console.log( removeID(url1) );
console.log( removeID(url2) );
于 2013-09-24T04:06:16.453 に答える