Javascript-删除函数字符串中前面的选项卡

Javascript-删除函数字符串中前面的选项卡,javascript,regex,Javascript,Regex,我用javascript声明了一些函数,在行的开头有一些选项卡,例如: { x: function() { alert('message'); } } 现在,我有了另一个函数(我正在尝试创建类似于PHP XDebug扩展var_dump的东西),我希望在其中以字符串的形式获取该函数。我使用obj.x.toString()。问题是,行开头的那个些制表符(“\t”)正在破坏var_转储输出中的制表符。所以我需要一个函数,它可以找到一行,在开始的时候有最少的制表符或空

我用javascript声明了一些函数,在行的开头有一些选项卡,例如:

{
    x: function() {
        alert('message');
    }
}
现在,我有了另一个函数(我正在尝试创建类似于PHP XDebug扩展var_dump的东西),我希望在其中以字符串的形式获取该函数。我使用
obj.x.toString()
。问题是,行开头的那个些制表符(“\t”)正在破坏var_转储输出中的制表符。所以我需要一个函数,它可以找到一行,在开始的时候有最少的制表符或空格,然后从其他行的空白处剪掉

例如:

    function() {
        if (0 == 0) { //whatever
            ...
        }
    }
应成为:

function() {
    if (0 == 0) { //whatever
        ...
    }
}

我在寻找某种正则表达式,…,而不是比我脚本中的任何函数都大的函数。如果不能简单地完成,我可以不做。拥有功能而不是要求是很好的。

标签和空格混合在一起怎么样?如果是,那么有多少空格等于一个选项卡?如果脚本源代码位于Unix行结尾,并且作者在字符串的行结尾处使用了一个
\
(转义)的话,那么重要的空白区域呢?如果
x.toSource()
(考虑到它只是一个特性)呢?我不认为您可以在不使用新行和制表符的情况下完成此操作,就像您可以在java中对其进行正则化一样?匹配
/^(?:\t{4})*/
,在匹配上用
“\t”
替换
/{4}/g
,获取长度,拆分新行,用修剪映射,重新连接。仍然可能会中断包含新行的文本