gpt4 book ai didi

javascript - 如何使用粘贴代码删除前导空格/制表符?

转载 作者:行者123 更新时间:2023-11-30 13:23:45 32 4
gpt4 key购买 nike

我正在尝试处理文本区域中的粘贴代码,并希望对粘贴到第一个非间距字符的内容进行左 trim 。我想采用以下代码:

    if (foo)
{
console.log(bar);
}

然后像这样呈现:

if (foo)
{
console.log(bar);
}

我已经编写了将文本分解的代码,以便我将每一行都放在一个数组中,然后遍历该数组,将最少的空格存储在变量中,然后再次遍历该数组,使用 substr( ) 返回 X 个字符后的字符串。如果任何行没有前导空格或制表符,则不应进行 trim 。我所做的工作(尚未添加对选项卡的支持),但我相信有更好的方法可以做到这一点。我在 jsFiddle 上有一个工作样本.

那么...有人知道我怎样才能更有效地完成这项工作吗?

最佳答案

如果您有一个字符串数组,那么对它们进行排序会将以空格开头的字符串放在开头(因为空格是任何打印字符的最低 ASCII 代码)。因此,数组的最后一个成员将具有最少数量的前导空格(可能为零)。

因此要 trim 的前导字符数由下式给出:

function spacesToTrim(s) {
s = s.split('\n').sort();
var n = s[s.length - 1].match(/^\s*/);
return n? n[0].length : 0;
}

而且由于 splitsort 等数组操作非常快,因此它应该比任何交互方法都快得多,尤其是在数组上迭代两次的方法。

关于javascript - 如何使用粘贴代码删除前导空格/制表符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288163/

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