0
         var layerName = layer.name;
         //replace weird characters in layer names
         var layerName = layerName.replace(")", "-");
         var layerName = layerName.replace("(", "-");
         var layerName = layerName.replace(":", "-");
         var layerName = layerName.replace(":", "-");
         var layerName = layerName.replace(/\//, "-");
         var layerName = layerName.replace('/', "");
         var layerName = layerName.replace("---", "-");
         var layerName = layerName.replace("--", "-");
         var file = new File(folder.fsName+"/"+layerName+".png");

拡張スクリプトを使用していますが、何らかの理由で2つの「--」文字を置き換えません。正規表現を使えばもっと簡単にできる気がしますが、私はそれが苦手です。すべての奇妙な英数字以外の文字とスペースを「-」に置き換えようとしています

4

2 に答える 2

2

これはどう:


// Test String
var layerName = "123---A%*^%   )()H";
layerName
     .replace(/\-+/g,'-')  // Collapse multiple dashes into a single one 
     .replace(/\W+/g,'-'); // Replace Non-word characters

結果:

123-A-H

\W+単語以外のすべての文字に一致します。

于 2012-01-18T20:35:12.483 に答える
0

必要な正規表現は次のとおりです。

[^a-zA-Z0-9] 

置換文字は「-」です

于 2012-01-18T20:39:15.527 に答える