質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

482閲覧

取得した値を配列に格納して正規表現

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/05/11 16:01

前提・実現したいこと

ユーザーが入力した値をまとめて取得して配列に格納、そして配列の値を正規表現したいのですがうまくいきません。

入力する値は0から5の半角数字で考えています。

私がやりたいことを実現するにはどこが間違っていてどうすればいいのか教えてほしいです。

発生している問題・エラーメッセージ

Uncaught TypeError: int_test_array[0].match is not a function

該当のソースコード

<input type="text" id="number1" value="" onclick="validate_check()"> <input type="text" id="number2" value="" onclick="validate_check()"> for ( var i = 1; i <= 2 ; i++ ) { var test_array.push(document.getElementById('number' + i).value); } //文字列だったので数値に変換 var int_test_array = test_array.map(function (element) { return Number(element);}); //ここで上記のエラーが出ます if(int_test_array[0].match(/^[0-5]{1}$/) && ...

試したこと

1つめのinputに半角数字で1を入力し、console.log(int_test_array[0])を出力すると数値の1が出てきます。

int_test_array[0]の部分を、数値の1を入力した変数にすると正規表現が機能します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/05/11 16:25

正規表現は文字列に対して使うものですが、すでに数値に変換済みだからでしょうね…。
guest

回答2

0

javascript

1<input type="text" class="number" value=""> 2<input type="text" class="number" value=""> 3 4<script> 5window.addEventListener('DOMContentLoaded', ()=>{ 6 document.querySelectorAll('.number').forEach(x=>{ 7 x.addEventListener('input',()=>{ 8 const int_test_array=[ 9 ...document.querySelectorAll('.number') 10 ].map(x=>x.value); 11 const flg= 12 /^[0-5]$/.test(int_test_array[0]) && 13 /^[0-5]$/.test(int_test_array[1]); 14 console.log(flg); 15 }); 16 }) 17}); 18</script> 19

投稿2021/05/12 00:15

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

js

1var int_test_array = []; 2for ( var i = 1; i <= 2 ; i++ ) { 3 int_test_array.push(Number(document.getElementById('number' + i).value)); 4} 5//文字列だったので数値に変換 6//var int_test_array = test_array.map(function (element) { return Number(element);});

投稿2021/05/11 16:15

編集2021/05/12 03:43
kei344

総合スコア69606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問