0

如何拆分这些字符串以便得到下面的结果?我希望能够做这样的事情:

 alert(img/small/Closed-Main-Fabric-Collar_2018.png.replace(/\-/g, ' '));

这会提醒:Closed-Main-Fabric-Collar 但我需要它工作,即使刺痛有一个额外的 /mid/ 我很确定我需要两个替换功能一个来获得“Closed-Main-Fabric-Collar ”和一个获得“2018”

 1. img/small/Closed-Main-Fabric-Collar_2018.png
 2. img/small/Base-Shirt_2016.jpg
 3. img/small/mid/Outside-Pocket-Left_2019.png
 4. img/small/large/Outside-Pocket-Left_2019.png


 1. Closed-Main-Fabric-Collar
    2018

 2. Base-Shirt
    2016

 3. Outside-Pocket-Left
    2019

 4. Outside-Pocket-Left
    2019

谢谢!

4

1 回答 1

1

您可以使用正则表达式提取您要查找的两个子字符串:

var str = "img/small/Closed-Main-Fabric-Collar_2018.png";
var match = /\/([A-Za-z\-]+)_(\d+)\.$/.exec(str);
if (match) {
    // match[1] has "Closed-Main-Fabric-Collar"
    // match[2] has "2018"
}

该正则表达式分解如下:

  • \/匹配文字/
  • (...)捕获与这些括号内的表达式匹配的文本。
  • [A-Za-z\-]+匹配一个或多个字符A- Za-z-.
  • _匹配文字_
  • \d+匹配一位或多位数字
  • \.匹配文字.

由于有两个捕获组,因此它们被捕获在生成的匹配对象的[1][2]属性中。

于 2013-06-17T08:00:02.583 回答