文字列から数値のみを取得する方法は様々あります。以下にいくつかの方法を紹介します。
正規表現を使用する方法
正規表現を使って数値のみを抽出する方法です。\d+パターンを使用して数値の部分を抽出します。利点としては、簡潔なコードで数値のみを取得できることです。
const str = "文字列123の部分456を抽出789する"; const numbers = str.match(/\d+/g).map(Number); console.log(numbers); // [123, 456, 789]
parseInt()関数を使用する方法
parseInt()関数を使って文字列を数値に変換し、数値でない部分は無視します。この方法の利点は、整数を直接抽出できることです。
const str = "文字列123の部分456を抽出789する"; const numbers = str.split(/\D+/).filter(Boolean).map(Number); console.log(numbers); // [123, 456, 789]
文字列を反復処理して数値のみを取得する方法
文字列を反復処理して、数値のみを取得する方法です。文字列を一文字ずつ処理し、数値である場合は数値として追加していきます。この方法の利点は、細かい制御が可能であることです。
const str = "文字列123の部分456を抽出789する";
let num = "";
const numbers = [];
for (const char of str) {
if (!isNaN(char)) {
num += char;
} else if (num !== "") {
numbers.push(Number(num));
num = "";
}
}
if (num !== "") {
numbers.push(Number(num));
}
console.log(numbers); // [123, 456, 789]
よくある質問(FAQ)
Q. JavaScriptで文字列から数字のみを抽出するには?
A. string.match(/\d+/g)で数字の連続部分を配列として取得できます。全体を1つの数値として取りたい場合はstring.replace(/[^0-9]/g, “”)で数字以外を削除します。
Q. 文字列中の整数と小数点数を含む数値を抽出するには?
A. match(/-?\d+\.?\d*/g)または/-?\d+(\.\d+)?/gで小数も含めて抽出できます。マイナス符号も含む場合は先頭の-に注意してください。
Q. 抽出した数値文字列を数値型に変換するには?
A. .map(Number)またはparseFloat()・parseInt()でそれぞれ変換します。一括変換はstr.match(/\d+/g).map(Number)のようにmatchとmapを繋げて書けます。
まとめ
これらの方法を使うことで、特定のケースに応じて適切な方法を選択することができます。正規表現はパターンが決まっている場合や、複数の数値を一度に抽出する場合に便利です。parseInt()関数は整数を直接抽出する場合に適しています。文字列を一文字ずつ処理する方法は、細かな制御が必要な場合に役立ちます。