Javascript-删除函数字符串中前面的选项卡
我用javascript声明了一些函数,在行的开头有一些选项卡,例如:Javascript-删除函数字符串中前面的选项卡,javascript,regex,Javascript,Regex,我用javascript声明了一些函数,在行的开头有一些选项卡,例如: { x: function() { alert('message'); } } 现在,我有了另一个函数(我正在尝试创建类似于PHP XDebug扩展var_dump的东西),我希望在其中以字符串的形式获取该函数。我使用obj.x.toString()。问题是,行开头的那个些制表符(“\t”)正在破坏var_转储输出中的制表符。所以我需要一个函数,它可以找到一行,在开始的时候有最少的制表符或空
{
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
,获取长度,拆分新行,用修剪映射,重新连接。仍然可能会中断包含新行的文本