gpt4 book ai didi

javascript - 通过 Apple Automator 运行 Javascript 排序

转载 作者:行者123 更新时间:2023-12-04 18:32:29 25 4
gpt4 key购买 nike

我正在尝试在 Apple Automator 中使用以下代码

var lnRange = getSelectedLineRange();
var ln = getTextInRange(lnRange[0],lnRange[1]);

var lines = ln.split('\n').sort(function(a, b)
{
var parsedA = a.replace(/\*\s(<s>)?(The )?/, "* ");
var parsedB = b.replace(/\*\s(<s>)?(The )?/, "* ");

return parsedA.localeCompare(parsedB);
});
setTextInRange(lnRange[0],lnRange[1],lines.join('\n'));

我知道代码是合理的并达到了我需要的结果(在 iPhone 上的草稿中运行它会产生我需要的结果,即在忽略使用 <s> 和/或“在”行的开头。* 需要保留在列表中)。

将它从 iPhone 转移到 Automator 是事情崩溃的地方,因为 Automator 找不到变量 getSelectedLineRange。我猜这是 Automator 处理文本输入的方式与脚本想要获取和处理它的方式之间的冲突,但我对如何解决它陷入僵局。

举例来说(如果我的整个方法都是错误的)我想要这个列表,在我可以抛出的任何文本字段中
* Armadillo
* The aardvark
* <s>Rhino</s>
* <s>The Zebra</s>
* The Giraffe
* Hedgehog

选中后,通过脚本,作为服务运行,然后像这样出来
* The aardvark
* Armadillo
* The Giraffe
* Hedgehog
* <s>Rhino</s>
* <s>The Zebra</s>

我当然不喜欢 javascript 解决方案,但这是我的起点。

最佳答案

中的“ 运行 JavaScript ” 操作自动化 需要 run(input, parameters)功能。

输入 是一个包含一项(文本)的数组。

function run(input, parameters) {
var lines = input[0].split('\n').sort(function(a, b)
{
var parsedA = a.replace(/\*\s(<s>)?(The )?/, "* ");
var parsedB = b.replace(/\*\s(<s>)?(The )?/, "* ");
return parsedA.localeCompare(parsedB);
});
return lines.join('\n');
}

关于javascript - 通过 Apple Automator 运行 Javascript 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com