こんばんは。
最近、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番目に登場する指定文字を削除した文字列、なんてのもできる。
どんどん作ってこ~
コメントする