如何分割这些字符串以便我得到以下结果?我希望能够做到这样的事情:
alert(img/small/Closed-Main-Fabric-Collar_2018.png.replace(/\-/g, ' '));
这会警告:Closed-Main-Fabric-Collar 但即使刺痛有额外/中/我也需要它才能工作 我很确定我需要两个替换功能,一个是获得“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
谢谢!
答案 0 :(得分: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
- Z
,a
- z
和-
。_
匹配文字_
。\d+
匹配一个或多个数字\.
匹配文字.
。由于有两个捕获组,因此它们会在生成的匹配对象的[1]
和[2]
属性中捕获。