Javascript 从textItem.Contents提取撇号时出错

Javascript 从textItem.Contents提取撇号时出错,javascript,photoshop-script,Javascript,Photoshop Script,我正在尝试使用JS-textItem.contents从Photoshop中的LayerKind.text艺术层提取文本。在我试图提取的字符串中有一个撇号之前,它工作得非常好。它返回这个特殊字符,� , 每次在字符串中发现撇号时 有没有办法阻止这种情况发生,或者找到那个特殊字符并用撇号(单引号)替换?从我读到的一篇帖子中,海报使用了.replace(“EM”,““””),但这似乎对我不起作用 谢谢 快速检查一下:您是否对撇号使用了转义斜杠?你确定它是撇号(U+0027)而不是右引号(U+2019

我正在尝试使用JS-textItem.contents从Photoshop中的LayerKind.text艺术层提取文本。在我试图提取的字符串中有一个撇号之前,它工作得非常好。它返回这个特殊字符,� , 每次在字符串中发现撇号时

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


谢谢

快速检查一下:您是否对撇号使用了转义斜杠?你确定它是撇号(U+0027)而不是右引号(U+2019);我总是把他们搞混

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

// 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;
}