0

以下の結果が得られるように、これらの文字列を分割するにはどうすればよいですか? 私はこのようなことができるようにしたい:

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

これは警告します:Closed-Main-Fabric-Collarですが、刺し傷に余分な/ mid /がある場合でも機能する必要があります。「Closed-Main-Fabric-Collarを取得するには、1つの置換関数が2つ必要になると確信しています。 」と「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

正規表現を使用して、探している 2 つの部分文字列を抽出できます。

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、およびの 1 つ以上の文字に一致し-ます。
  • _リテラルに一致し_ます。
  • \d+1 つ以上の数字に一致
  • \.リテラルに一致し.ます。

キャプチャ グループが 2 つあるため、それらは結果の一致オブジェクト[1][2]プロパティにキャプチャされます。

于 2013-06-17T08:00:02.583 に答える