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

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

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

2016年04月12日

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

こんばんは。

最近、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番目に登場する指定文字を削除した文字列、なんてのもできる。

どんどん作ってこ~

著者

みやびプリン 職業:フロントエンドエンジニア
基本はイラストレイター(自称)だが、
本職は札幌市のフロントエンドエンジニア。
フロントエンドだけではなく、各種プログラミング言語に精通していると自負している。
HTML、CSSはもちろんのこと、JavaScript、TypeScript、PHP、Perl、Python、C#、Kotlin、Swift、Objective-Cなど多くの多くの言語に精通している他、
Movable Type、WordPressなど各種CMS、React.js、Angularなどフロントエンドフレームワークも扱える。
最近はUnityによる3Dコンテンツにも手を出している。

トラックバック(0)

トラックバックURL:

コメントする

ページトップへ戻る