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

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

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

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

Q&A

解決済

3回答

5347閲覧

フォーム入力:電話番号の"-"を判定する

arare000

総合スコア26

JavaScript

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

0グッド

0クリップ

投稿2016/11/15 19:49

Javascriptで登録フォームを作成しようとしておりまして、11桁の電話番号の箇所に"-"が入力されているかどうかをチェックして、もし"-"が場合は再入力をするように促すフォームを作りたいのですが、これをチェックするために参考となるコードはあるでしょうか?

差支えない範囲で教えて頂けたら有り難く存じます。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/11/15 19:54

「もし"-"が場合は再入力をするように促す」→「が必要な場合」??
astoria17

2016/11/15 20:07

「もし"-"が入力された場合は再入力をするように促す」でした!
退会済みユーザー

退会済みユーザー

2016/11/15 20:32 編集

アカウントが違うようですが… 入力された場合は再入力って…おかしいでしょ?
arare000

2016/11/15 20:33

すみません"-"が入力されたらエラー出力し、電話番号のみを表示するようにレスポンスが出る、という意味です
退会済みユーザー

退会済みユーザー

2016/11/15 20:36 編集

要するに、数字のみの入力に限定するということかいな?
arare000

2016/11/15 22:42

はい、そうなんです・・
guest

回答3

0

再入力を促すというUIはまったくおすすめしません。
ハイフンを除去することは機械的にできることですから、だったらプログラムが機械的に除去すべきでありユーザーに負担をかけるべきではありませんので。

placeholoder属性でハイフンなしの見本は示しつつ、pattern属性では数字・ハイフン・括弧を許容し、サーバー側で、もしくは加えてonchangeのタイミングでハイフン・括弧の除去を行うというのがあるべきUIになります。
これは、フリガナの平仮名・片仮名、全角・半角という書式の制限をかけるときにも同じことが言えます。

投稿2016/11/16 02:31

yuba

総合スコア5568

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

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

arare000

2016/11/16 11:11

ありがとうございます。ちょっと考えを改めてみます。
guest

0

ベストアンサー

"-" をユーザーに入力を求めるのは、ユーザービリティの観点から、お勧めしません。
というのも、"-" には、見た目がほぼ同じだが、似ているものが多いためです。

    • (半角英字ハイフン)
  • ー(ひらがな長音記号)
  • ー(カタカナ長音記号)
  • 一(漢数字のイチ)
  • ─(罫線の記号)

それならば、むしろ

html

1<input type="text" name="tel[]"> 2- 3<input type="text" name="tel[]"> 4- 5<input type="text" name="tel[]">

の方が間違いが起こりにくいはずです。


数字のみの入力に限るのであれば、

/[\d]{10,11}/

のような正規表現パターンでチェックすれば良いのでは?

投稿2016/11/15 20:03

編集2016/11/15 20:44
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

arare000

2016/11/16 03:26

ありがとうございます、javascript で処理することは可能でしょうか?
otn

2016/11/16 04:13

> それならば、むしろ こう分けちゃうのは、コピペやIME辞書登録での入力が出来ないので、不便を感じるユーザーもいます。 ぜひやめていただきたい。
arare000

2016/11/16 11:11

了解しました。HTMLで十分ですね。ありがとうございました。
guest

0

チェック処理とエラーを出したいということであれば、
<input type="tel">pattern属性を使うとユーザビリティ的にもよいと思います。
jsでないのと、ブラウザをどこまで対応するかにもよってしまいますが…。

html

1<input type="tel" pattern="^[0-9]{9,11}+$">
  • input type="tel"を使用するとスマホで表示した際に、ソフトウェアキーボードが自動で数字入力に切り替わり、ユーザが切り替える手間がなくなります。
  • pattern属性は正規表現を含めることができ、対応しているブラウザであれば、form送信前に正規表現でチェックをし、エラーを表示することができます。

また、placeholder属性を使用してハイフンなしの入力例を記載しておくと良いと思います。

投稿2016/11/16 02:24

ShoheiTai

総合スコア897

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

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

arare000

2016/11/16 03:26

ありがとうございます、javascript で処理することは可能でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問