.replace в Javascript, чтобы заменить несколько символов - PullRequest
0 голосов
/ 19 января 2012
         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");

с использованием extendscript, но по какой-то причине он не заменит два символа "-".Я чувствую, что я могу сделать это проще с регулярным выражением, но я сосу на это.я пытаюсь заменить все странные не алфавитно-цифровые символы и пробелы на "-"

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Как насчет этого:


// 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+ Соответствует всем несловесным символам,

0 голосов
/ 19 января 2012

Требуемое регулярное выражение:

[^a-zA-Z0-9] 

, а ваш символ замены - '-'

...