如何在扩展脚本中为AdobeInDesign定义分行符

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

我使用extendscript从下载的纯文本电子邮件(.txt)构建一些发票

在文件中的点处,有一行文本看起来像“订单号:123456”,然后该行结束。我有一个脚本,我在这个网站上找到的部分找到了“订单号:”的结尾,以获得子字符串的起始位置。我想使用返回键的位置转到下一行作为第二个索引号来完成子字符串。为此,我从该站点的有用人员那里获得了另一段脚本,该脚本从一个角色的每个实例的索引中生成一个数组。然后,我将使用任何数组对象的数字高于子字符串的第一个数字。

这有点令人费解,但我对Javascript还不是很好,如果有更简单的方法,我不知道。

我需要使用什么字符来模拟jxt中的txt文件中的返回键以获取indesign的extendscript?

谢谢。

我已经尝试过像\ n和\ r \ n和^ p这样的东西,无论是否有引号,但是当我尝试它们时,这些似乎都没有出现在数组中。

//Load Email as String

var b = new File("~/Desktop/Test/email.txt");

b.open('r');

var str = "";

while (!b.eof)

    str += b.readln();

b.close();

var orderNumberLocation = str.search("Order Number: ") + 14;


var orderNumber = str.substring(orderNumberLocation, ARRAY NUMBER GOES HERE)

var loc = orderNumberLocation.lineNumber


function indexes(source, find) {
    var result = [];
    for (i = 0; i < source.length; ++i) {
        // If you want to search case insensitive use 
        // if (source.substring(i, i + find.length).toLowerCase() == find) {
        if (source.substring(i, i + find.length) == find) {
            result.push(i);
        }
    }
    alert(result)
}

indexes(str, NEW PARAGRAPH CHARACTER GOES HERE)

我希望我的所有换行符都显示为变量“result”中的索引数组。

提问于
用户回答回答于

如果我理解得很好,你需要的是str.split():

function indexes(source, find) {
    var order;
    var result = [];
    var orders = source.split('\n'); //returns an array of strings: ["order: 12345", "order:54321", ...]
    for (var i = 0, l = orders.length; i < l; i++)
    {
        order = orders[i];
        if (order.match(/find/) != null){
            result.push(i)
        }
    }
    return result;
}
用户回答回答于

扫码关注云+社区

领取腾讯云代金券