2013-03-26 114 views
1

我在写一个Photoshop JavaScript脚本文件。对于所有意图和目的,此脚本在运行时会多次复制特定文本层。如果原始文本图层包含撇号,则复制的实例会用方块替换撇号。因此,“它”变成了“它[]的”Javascript单引号替换被忽略

下面是代码(显然不是括号,但见方的块。):

titleLayer = al.textItem.contents; 

newTitleLayer = titleLayer.replace("'", "\'"); 
alert(newTitleLayer); // At this point, this works: "It's" 

persistentSetting.putData(0,newTitleLayer); 
app.putCustomOptions("text_contents4",persistentSetting,true); 

alert(persistentSetting.getData(0)); // At this point, it does not. It shows the square. "It[]s" 

我知道这必须是一个简单的问题,我以前从未遇到过这种情况。

谢谢。

+0

为什么用撇号替换撇号?如果您完全忽略替换,它会正确输出吗? – Bergi 2013-03-26 16:06:24

+0

你是否是我们的实际样本页面?你能用jsfiddle重现吗?因为它听起来更像是一个字符编码错误。 – Kevkong 2013-03-26 16:37:11

回答

0

我猜你想

newTitleLayer = titleLayer.replace(/'/g, "\\'"); 
//         ^^^^ ^
// regex to match *all* apostrohpes  escape the backslash 
+0

不幸的是,仍然给我同样的问题,在这里看到: http://i.imgur.com/qiQ4nnZ.png – 2013-03-26 16:18:10

0

什么结束了对我的工作是:

persistentSetting.getData(0).replace( “EM”, “'”); //它实际上并不是EM,但是这是当我复制并粘贴特殊块[]字符时,JS在编辑器中显示的小代码。

感谢您的帮助。