プロが教える店舗&オフィスのセキュリティ対策術

-- 現在の状態
ハイフンなしで判定(別処理でハイフン除去)
0から始まり、9桁~10桁ならOK。

phone: function( element ) {

var reg = /^0[\d]{9,10}$/;

var val = $( element ).val().trim();

if ( !val ) { return false; }

return reg.test(val);

}

初心者のため色々試してはいるのですが、うまくいきません。
var reg = /^0[5789]0+[\d]{8}|^0[\d]{9,9}$/;

■質問させていただきます。
固定電話、携帯電話ごとにチェックしたいのですが、どのように行えばいいでしょうか。アドバイスを頂ければ幸いです。

条件は
①携帯電話 050、070、080、090から始まる場合は 12桁入力されていないとNG

②固定電話 10桁でないとNG。又は上記①以外は10桁のような形

以上の形をどう作るのがベストかご教示いただけますでしょうか
宜しくお願いいたします。

A 回答 (3件)

こんな感じかな。



var reg = /^(0[5789]0\d{8}|0[1-9][1-9]\d{7})$/

- 050, 070, 080, 090 で始まる場合は、数字 11桁。
- 0 で始まって、2桁目が 1~9 の場合は、3桁目も 1~9 で、数字 10桁。

# 携帯は 12桁じゃなくて、11桁ですよね :-)
    • good
    • 0

こんなものどうせ合っているかどうかチェックしようがないのですから


・ユーザーが市外局番を勝手に抜かないように頭が「0」
・そのあとは半角数字のみ
だけチェックすれば十分では?

^0\d+$

チェックをきびしくしたいなら2度入力させることです
    • good
    • 0

難しく考えずに、場合分けすれば簡単です


var 結果 = /^0[5789]0/.test(val) ? /^0\d{10}$/.test(val) : /^0\d{9}$/.test(val)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!