JavaScriptで数値文字列の先頭と末尾の0を削除する方法
本記事では、数値を表す文字列を受け取り、先頭と末尾にあるすべての「0」を削除した新しい数値文字列を返すJavaScript関数の作成方法を解説します。
要件の確認
例えば、入力が以下の文字列だった場合:
const strNum = '054954000';
期待される出力は次のとおりです:
const output = '54954';
このように、先頭の「05」と末尾の「000」が取り除かれ、中央の有効な数字だけが残ります。
実装コード
以下が実際のコードです:
const strNum = '054954000';
const removeZero = (str = '') => {
let startLen = 0, endLen = str.length - 1;
while(str[startLen] === '0'){
startLen++;
}
while(str[endLen] === '0'){
endLen--;
 }
return str.substring(startLen, endLen + 1);
};
console.log(removeZero(strNum));
コードの仕組み
この関数は2つのポインタを使ったシンプルなアルゴリズムで構成されています。
- startLen(先頭ポインタ): 文字列の先頭から走査し、文字が「0」である限りインデックスを1つずつ進めます。
- endLen(末尾ポインタ): 文字列の末尾から走査し、文字が「0」である限りインデックスを1つずつ戻します。
- substring()による切り出し: 最後に
substring(startLen, endLen + 1)を呼び出すことで、余分な0を取り除いた部分文字列を返します。
なお、引数が渡されなかった場合に備え、デフォルトパラメータとして空文字列を設定している点もポイントです。
注意点:すべてが0の場合
入力が「'000'」のようにすべて0で構成されている場合、この関数は空文字列 '' を返します。業務で利用する際は、空文字になったケースのハンドリングを別途追加することをおすすめします。
代替手段:正規表現を使う方法
より簡潔に書きたい場合は、正規表現を利用するのも有効です。
const removeZero = (str = '') => str.replace(/^0+|0+$/g, '');
console.log(removeZero('054954000')); // 54954
^0+ が文字列先頭に連続する0を、0+$ が末尾に連続する0を検出して削除します。コード量が少なく可読性も高いので、状況に応じて使い分けるとよいでしょう。
出力結果
コンソールには以下のように表示されます:
54954
-
JavaScriptで配列から要素を削除する方法|pop・shift・spliceの使い方
JavaScriptで配列から要素を削除する場面は大きく分けて3つあります。まず配列の末尾から要素を削除する方法、次に配列の先頭から要素を削除する方法、そして指定したインデックス(位置)から要素を削除する方法です。 それぞれのケースに対応した標準組み込みメソッドが用意されているため、目的に応じて使い分けることができます。ここでは、実際のコード例とともに各メソッドの使い方を順番に見ていきましょう。 配列の末尾から要素を削除する(pop) 配列の末尾から要素を削除するには、popメソッドを使用します。popは配列の最後の要素を取り除き、取り除かれた要素を戻り値として返します。 let veggi
-
JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説
JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>