読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

インデントを除去する

javascript
  a
    b
     c
  a

   d

を、

a
  b
   c
a

 d

のようにする。問題は単純なのに、きれいに書こうとすると難しいな。

function stripIndent(str) {
  var strs = str.split('\n'), a = [];
  for (var i = 0; i < strs.length; ++i) {
    var s = strs[i];
    var n = s.match(/^\s*/)[0].length;
    if (!n) return str;
    a.push(n);
  }
  return str.replace(RegExp('^\\s{' + Math.min.apply(null, a) + '}', 'gm'), '');
}

stripIndent('   aaaa\n aaaa\n  aaaa'); // ' aaaa\naaaa\n aaaa'