javascript エラー「Uncaught TypeError: xxx.match is not a function」の解決方法
- 作成日 2023.03.23
- javascript
- javascript
javascriptで、エラー「Uncaught TypeError: xxx.match is not a function」が発生した場合の原因と解決方法を記述してます。文字列以外に「match」を使用した場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。
環境
- OS windows11 pro 64bit
- ブラウザ chrome 111.0.5563.111
エラー内容
以下の、「数値」に「match」を使用して正規表現に一致する値を配列化するコードで発生。
const num = 123456;
const result = num.match(/[0-3]/g);
console.log( result );
エラーメッセージ
Uncaught TypeError: num.match is not a function
画像
firefox106の場合では、以下のエラーが発生します。
Uncaught TypeError: num.match is not a function
画像
safari15.5では、以下のエラーとなります。
TypeError: num.match is not a function. (In 'num.match(/[0-3]/g)', 'num.match' is undefined)
画像
原因
「match」は文字列には使用できるが数値には使用できないため
const str = '123456';
const result = str.match(/[0-3]/g);
console.log( result ); // ['1', '2', '3']
解決方法
文字列に変換してから使用する。
const num = 123456;
const result = num.toString().match(/[0-3]/g);
console.log( result ); // ['1', '2', '3']
// 数値に変換
console.log( result.map(function(v){return Number(v) }) ); // [1, 2, 3]
または、文字列であるかを判定してから使用します。
const num = 123456;
const result = typeof num === 'string' ? num.match(/[0-2]/g) : '文字列ではありません';
console.log( result ); // 文字列ではありません
-
前の記事
ubuntu nautilusでディレクトリやファイルの名前を変更するショートカットキー 2023.03.23
-
次の記事
Flutter ElevatedButtonの背景色を指定する 2023.03.23
コメントを書く