extract strings between last two slashes using regular expression in javascript

后端 未结 2 708
忘掉有多难
忘掉有多难 2021-01-23 20:25

I want to extract the string between last two string using a regular expression. I cannot seem to be able to come up with the right expression, if someone could help me that wou

相关标签:
2条回答
  • 2021-01-23 20:44

    Since you only care about the last set of slashes, you start by matching anything
    .*
    then you want a literal slash
    \/ (escaped since the slash would terminate the js regex)
    now you want anything up to the next slash, which implies not a slash and _there must be something (one-or-more) and we'll put that in a capturing group so you can extract it.
    ([^/]+)
    and followed by another literal slash
    \/
    then anything else (the file name?) that, again, does not include slashes
    [^/]+

    Putting that all together gives you the regex
    /.*\/([^/]+)\/[^/]+/
    and
    "aa/bbbb/ccccc/eeee/fffff.jpg".match(/.*\/([^/]+)\/[^/]+/);
    produces
    ["aa/bbbb/ccccc/eeee/fffff.jpg", "eeee"]
    ... the eeee is captured.

    0 讨论(0)
  • 2021-01-23 20:44

    I know you said you wanted to use a regex but for those looking for a solution but don't require it to be a regex, you could do this simply by splitting the string:

     var originalString = 'aa/bbbb/ccccc/eeee/fffff.jpg';
    
     //convert to array
     var parts = originalString.split('/');
    
     //find the second to last item
     var lastPartOfPath = '';
    
     //make sure there are more than one part
     if (parts.length > 1) {
          lastPartOfPath = parts[parts.length-2];
     }
    
    0 讨论(0)
提交回复
热议问题