JavaScript、文字列のn番目~n文字削除

謎のプリン語る。
プログラミングの役立つ情報とか、どうでもいい雑談とか書いてます。
一人書く人増えました。

JavaScript、文字列のn番目~n文字削除

2016年04月12日

みやびプリン 500 316

144 144

※この記事は8年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。

こんばんは。

最近、JSの組み込みクラスをオーバーライドして拡張する方法覚えてから、けっこう楽しい。
いずれjQueryいらん時がくるかもしらん。

さて、表題の件なんだけど、
よくある方法が、
sliceとかsubstringを使う方法なのだが、
これらのn番目系のメソッドは、n番目を抽出はすれど、
n番目を削除して残った文字列がほしい、なんてことはできない。
要は、

"あほやろーこのくそ"の、"やろー"を取った、
"あほこのくそ"がほしいって時に一発ではできない。

replace使えばって?
それだと、下記場合、どうするのと。

"あほやろーこのやろー"の二番目の"やろー"だけを取りたい時。
普通にreplaceを使った場合、
"あほこの"になってしまう。
(一応、n番目に出現した文字列って、正規表現はあるらしいけど・・・)

というわけでn番目~n文字を抜いた文字列を生成する、メソッドを作った。

String.prototype.substrremove = function(offset, strNo){
  var parent = this,
    parentStr = '',
    usedStrNo = 1,
    usedOffset,
    offsetNow=0;
  if(offset){
    usedOffset = offset;
  }
  if(strNo){
    usedStrNo = strNo;
  }
  for (var i = 0; i < parent.length; i++){
    var addStr = '';
    if (i < usedOffset) {
      addStr = parent[i];
    } else {
      if (i > = usedOffset && i < usedStrNo+usedOffset) {
      } else {
        addStr = parent[i];
      }
    }
    parentStr += addStr;
  }
  return String(parentStr);
};

使い方は下記

var testStr = 'あほやろーこのやろー';
var resStr = testStr.substrremove(7, 3);
console.log(resStr); // 出力結果:あほやろーこの になるはず。。。 

前回記事のメソッドも組み合わせれば、
n番目に登場する指定文字を削除した文字列、なんてのもできる。

どんどん作ってこ~

トラックバック(0)

トラックバックURL:

コメントする

ページトップへ戻る