从textItem.Contents中提取撇号出错

时间:2013-08-30 21:43:26

标签: javascript photoshop-script

我正在尝试使用JS-textItem.contents从Photoshop中的LayerKind.TEXT艺术图层中提取文本。它工作得非常好,直到我在我想要提取的字符串中有一个撇号。每次在字符串中找到撇号时,它都会返回此特殊字符 。

有没有办法阻止这种情况发生或找到特殊字符并用撇号替换(单引号)?从我读过的一篇文章中,海报使用了.replace(“EM”,“'”),但这似乎对我不起作用。

谢谢!

1 个答案:

答案 0 :(得分:1)

快速检查:你是否使用了撇号的逃避斜线?你确定它是撇号(U + 0027)而不是正确的单引号(U + 2019);我让他们一直混在一起

Anyhoo,这里的脚本将遍历所有图层并用空字符串替换撇号 - 将替换字符串更改为您想要的任何内容。这应该可以帮助你。

// call the source document
var srcDoc = app.activeDocument;
var numOfLayers = srcDoc.layers.length;

// main loop starts here
for (var i = numOfLayers -1; i >= 0; i--)
{

    var tempLayer = srcDoc.layers[i]
    reName = justGetFontContents(tempLayer);

}//end loop


// function JUST GET FONT CONTENTS (layer)
// --------------------------------------------------------
function justGetFontContents(alayer)
{
    if (alayer.kind == 'LayerKind.TEXT')
    {
        //alert(alayer.name + " " + alayer.textItem.contents)
        var c = replaceApostrophe(alayer.textItem.contents)
        alert("reName = " + c)
        alayer.textItem.contents = c
    }
    return c
}


// function REPLACE APOSTROPHE WITH NOTHING (text string)
// --------------------------------------------------------
function replaceApostrophe(string)
{
    var niceString = string.replace(/[\']/g, "");
    return niceString;
}