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

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

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

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

Q&A

解決済

2回答

4856閲覧

javascript 少数点を許可する

nabex

総合スコア66

JavaScript

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

0グッド

0クリップ

投稿2016/06/08 01:20

編集2016/06/08 01:23

入力フォームの項目から受け取った値には少数点が含まれています。

少数点を含めた整数のみを許可し、それ以外の半角英数字や記号の場合はエラーを出力

調べたらsplit関数で使うやり方がやりやすいと思って実行しています。

入力値で1.0を入力した場合 TRUE にしたいのですが、正規表現に少数点がひっかかってしまいエラーが出てしまいます。

エラーチェックを行っているだけの関数なので、split関数で少数点のみを取り除き、正規表現で整数のみを許可したいのですが、そこでつまっています。教えてください。

function chkSampleId(p_id, p_name) {

var flg = true; var $input = jQuery('#' + p_id); var inputVal = $input.val();

var str = $input.split(".");
if (str != undefined && str != "") {
var maxLength = $input.attr("maxLength");

var reg = new RegExp("^[0-9]{0," + maxLength + "}$");//数値のみ if (!str.match(reg)) flg = false; } return flg;

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

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

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

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

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

guest

回答2

0

ベストアンサー

数値のみかどうかの判定をするならこれだけで事足りると思います。

・空文字もOK
^[0-9]*$

・最低1桁以上
^[0-9]+$

そもそも.を取り除かなくとも、これで整数、小数どちらも判定できると思います。
^[0-9]+.[0-9]$

投稿2016/06/08 01:26

編集2016/06/08 01:29
masaya_ohashi

総合スコア9206

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

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

nabex

2016/06/08 01:32

ありがとうございます。数値のみの場合の判定だけなら動くのですが、少数点も許可したい部分が上手くいかないですね。
nabex

2016/06/08 01:38

var reg = new RegExp("^[0-9]+\.*[0-9]*{0," + maxLength + "}$");//数値のみ これで試したのですが、少数点は通ったのですが、記号や半角英数字で入力した場合エラーがでなくなってしまいました。
masaya_ohashi

2016/06/08 01:42

{}部分を削除してみてください。あと\はjavascriptの文字列リテラル内に書くなら\\にしないといけません。
nabex

2016/06/08 01:48

今試してみます。
nabex

2016/06/08 01:50

出来ました!ありがとうございました!
guest

0

数値として扱えるかどうかだけであれば、isFinite()という関数が標準であるので、それを使うこともできます(ただし、-2001e30xffのような書き方でもtrueにはなります)。

投稿2016/06/08 01:27

maisumakun

総合スコア145184

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

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

nabex

2016/06/08 01:31

ありがとうございます。半角英数字が入ってしまうのはだめなので難しいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問