入力データの文字数をチェックする汎用JavaScript関数を作りたいのですが、正規表現の中で変数を利用する方法がわからなくて困っています。
すみませんが分かる方がいらっしゃいましたら教えてください。
よろしくお願いします。
//================================
//入力データチェック関数 checkfield
//引数1 data入力データ
//引数2 number文字数
//================================
function checkfield(data, i)
{
if(data.match(/^[0-9]{number}$/)!=-1){
alert('NG');
}else{
alerl('OK');
}
}
No.2ベストアンサー
- 回答日時:
どうでしょうか?
<HTML>
<HEAD>
<TITLE>ヘ(・、ヘ)ホイホイ(ノ、・)ノホイホイ</TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function button1_onclick() {
stra = text1.value
checkfield( stra , stra.length )
}
//================================
//入力データチェック関数 checkfield
//引数1 data 入力データ
//引数2 number 文字数
//================================
function checkfield(data, number)
{
var re = new RegExp("^[0-9]{" + number + "}$");
if(data.match(re) == null ){
alert('NG');
}else{
alert('OK');
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>例:入力データが数値なのか判断する</P>
<P><INPUT id=text1 name=text1 ></P>
<P><INPUT id=button1 type=button value=test name=button1 LANGUAGE=javascript onclick="return button1_onclick()"></P>
</BODY>
</HTML>
お返事が遅くなってしまってすみません。
ittochan様の回答はとてもわかりやすく参考になりました。
ありがとうございました。
追伸:
<TITLE>ヘ(・、ヘ)ホイホイ(ノ、・)ノホイホイ</TITLE>
<-これ面白いですね。
No.1
- 回答日時:
あまり利用頻度の高くないオブジェクトですが、正規表現オブジェクトを利用すると良いような気がします。
引数がnumberでよければ、ちょっと回りくどい書き方ですが、
function checkfield(data, i)
{
wrd="^[0-9]"+number; //正規表現で検索する文字列を変数に格納
chk= new RegExp(wrd,"");//変数wrdを検索する正規表現オブジェクト「chk」を作成
if(data.match(chk)!=-1){
alert('NG');
}else{
alerl('OK');
}
}
こんな感じに、正規表現オブジェクトを作成して、それをマッチングの対象にすれば、変数を正規表現に利用できるようになると思います。
正規表現にオプションをつけたい場合は、「new RegExp()」の第二引数に"g"などのように追加すれば、オプションもつけられます。
チェックしていないので、うまくいくかは少々自信なしですが…
参考になれば幸いです。
回答が遅くなってしまって申し訳ございません。
perl等と違い、正規表現を記述するためのオブジェクトというのがあるとは知らなかったので、とても助かりました。
はじめは正規表現オブジェクトの使い方に戸惑いましたが今では大分慣れ、オブジェクト故のメリットも分かるようになりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
if(1){...}とはどういうことで...
-
デザイン時のVisible=Falseは実...
-
PHP処理実行後のページの遷移に...
-
JavaScriptで ブラウザの閉じる...
-
フォルダを自動で開く
-
ブラウザからエクセルを開く方法
-
htmlのfileタグに自動で値を入...
-
JSPの処理の途中で、JavaScript...
-
Windows Form のMSChartで、グ...
-
ページ遷移時にアコーディオン...
-
特定の文字でエラー
-
gas 全角数字を半角数字に変換
-
jQuery ui Datepicker 明日以降...
-
innerHTMLなどの反映タイミング
-
画像の上にマウスをもってくる...
-
VB.NET2003 テキストボックスに...
-
PDFフォームで条件つき金額を表...
-
ASP(VBS) ←→ JavaScript の変数...
-
C#でボタン名を変更しても動く
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webページ中の javascript をVB...
-
ローカルのレジストリを読みたい
-
画面間でのJavaScrip...
-
フォルダ内のファイル名を取得...
-
エクセル2010のvbaについて
-
javaScriptでグローバル変数に...
-
event.srcElementの動的設定
-
JavaScriptでオブジェクトを識...
-
正規表現内に変数を使用する方法
-
ASP.NETでURLにマッピングされ...
-
javascript 名前空間?
-
文字を移動させその位置を表示...
-
JavaScript 日数計算の関数で演...
-
Shell.ApplicationでのIEオブ...
-
オライリーのプログラミングPHP...
-
イベントevt?evt.target:event....
-
タブブラウザで focus() を実...
-
jquery か javascript で json ...
-
クラス デフォルトプロパティの...
-
jQueryの仕組みについて質問です
おすすめ情報