JavaScriptで文字列の先頭n文字を削除する方法
JavaScriptでは、文字列と数値 n を引数に受け取り、その文字列から先頭の n 文字を取り除いた新しい文字列を返す関数を簡単に作成できます。
処理のイメージ
たとえば、元の文字列が次のようになっているとします。
const str = "this is a string";
ここで n = 5 を指定した場合、先頭の5文字("this ")が削除され、出力は次のようになります。
const output = "is a string";
実装コード
以下は、実際に関数を実装したコード例です。電話番号の先頭にある国コード(「+91」「+1」など)を除去するケースを想定しています。
const mobileNumber = '+915389534759385';
const secondNumber = '+198345985734';
const removeN = (str, num) => {
const { length } = str;
// 指定した文字数が文字列の長さを超える場合は元の文字列を返す
if(num > length){
return str;
};
const newStr = str.substr(num, length - num);
return newStr;
};
console.log(removeN(mobileNumber, 3));
console.log(removeN(secondNumber, 2));コードのポイント
- エラー対策: 削除する文字数 num が文字列の長さより大きい場合は、空文字列になるのを避けるため元の文字列をそのまま返しています。
- substr の使用:
str.substr(num, length - num)により、num 番目以降の残りのすべての文字を取得しています。
実行結果
コンソールには次のように出力されます。
5389534759385 98345985734
slice() を使ったモダンな書き方
substr() は現在では非推奨(deprecated)とされているため、実務では slice() を使うのがおすすめです。同じ処理は以下のように簡潔に書けます。
const removeN = (str, num) => {
if(num > str.length){
return str;
}
return str.slice(num);
};slice(num) は開始位置 num から末尾までの部分文字列を返すため、第2引数を省略しても同じ結果が得られます。
-
JavaScriptで文字列からn文字をアルファベット順に削除する方法
問題 今回は、小文字の英字で構成された文字列と数値 num を引数として受け取るJavaScript関数を作成します。この関数の役割は、文字列から num 文字を「アルファベット順」に削除することです。 ここでいう「アルファベット順に削除する」とは、まず a が存在すればすべて取り除き、次に b、続いて c というように、a から z の順番で目的の文字数に達するまで削除を繰り返すことを意味します。 コード例 以下が実際のコードです。 const str = abascus; const num = 4; const removeAlphabetically = (str = , num =
-
JavaScriptで文字列内の文字を英字・数字・特殊文字に再グループ化する方法
問題文字列 str を第一引数(唯一の引数)として受け取る JavaScript 関数を作成する必要があります。この文字列には、次の3種類の文字が含まれる可能性があります。英字:(A-Z)、(a-z)数字:0〜9特殊文字:上記以外のすべての文字関数は文字列を先頭から順に走査し、ちょうど3つの要素からなる配列を構築します。1番目の要素には文字列に含まれるすべての英字、2番目には数字、3番目には特殊文字を格納し、それぞれ元の文字列内での出現順(相対的な順序)を維持します。最後にこの配列を返します。例えば、関数への入力が次の場合を考えてみましょう。入力const str = thi!1s is S@