ここから本文です

javascriptで正規表現(半角数値のみ)を許可したいです。

can********さん

2014/6/2514:57:05

javascriptで正規表現(半角数値のみ)を許可したいです。

入力された数値をjavascriptを使って判定しています。入力された数値は半角数値のみを許可したいのですが、-(ハイフン)が許可されてしまいます。この-ハイフンを除くにはどうしたらいいでしょうか?現在に正規表現は/[^-0-9]+/を使い、数値のみ許可としていました。
よろしくお願いします。

閲覧数:
25,478
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

2014/6/2618:09:13

単純に -(ハイフン) を削除して
次のように変更すれば良いだけなのではないでしょうか?

   /[^-0-9]+/
    ↓変更↓
   /[^0-9]+/



【HTML全文例】↓

------------------------------
<html>

<head>
<meta content="text/html; charset=shift_jis">
<title>入力規制サンプル</title>

<script type="text/javascript"><!--
//関数 checkText の定義 (引数:テキストインプット)
function checkText(txt_obj){
    //テキストインプット内の入力値を変数化
    var str = txt_obj.value;
    //入力値に 0~9 以外があれば
    if(str.match(/[^0-9]+/)){
        alert("半角数字のみを入力してください。");
        // 0~9 以外を削除
        txt_obj.value = str.replace(/[^0-9]+/g,"");
    }
}
// --></script>

</head>

<body>
<p><input name="txt0" onkeyup="checkText(this)"></p>
<p><input name="txt1" onkeyup="checkText(this)"></p>
</body>

</html>
------------------------------

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

lvj********さん

2014/6/2612:54:07

^と$を使えば実現できます。

君の書いた正規表現が正しいですが、
要するにその正規表現で文字列が丸ごと一致する場合のみにTRUEと判定させることです。
正規表現の先頭に^をつけて、後ろに$をつければ、実現できます。

さっそく下記のように改造してテストしましょうか?

/^[^-0-9]+$/

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

sou********さん

2014/6/2516:16:33

正規表現をよく見て下さい。
そして、正規表現の解説サイトをよく読んで下さい。
それから、余計だと思う文字を1つずつ削除し、テストして下さい。

それでもわからなければ、追記にてお知らせ下さい。
でも、これぐらいのミスは自力で解決して欲しいところ・・・

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

せっかくの機会が台無しです

みんなのアンテナ

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる