- ベストアンサー
ハイフン省略可能な電話番号の正規表現
ハイフンを省略できる電話番号の正規表現をJavaScriptで書いているのですが、思うようにマッチしません。 検索すると以下のような正規表現がヒットしました /^0\d{1,4}-\d{1,4}-\d{4}$/ 上記の正規表現のハイフンの後ろに「?」をつけて、ハイフンが省略されてもヒットするように /^0\d{1,4}-?\d{1,4}-?\d{4}$/ しましたが、思い通りにヒットしません。 例えば、090-1234もヒットしてしまいます。 どうしたらハイフンを省略可能な電話番号の正規表現を書くことができますか?教えてください!
- newtgecko
- お礼率88% (150/169)
- JavaScript
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>が080-1234などにもヒットしてしまうのかを教えていただけると嬉しいです 08-0-1234 の最初のハイフンを省略したものと解釈されてます。
その他の回答 (1)
- miasansan
- ベストアンサー率29% (29/99)
JavaScriptでの、ハイフンを省略できる電話番号の正規表現をお探しなのですね? こちらのページの後半で、電話番号の例が載っています。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
お礼
ご回答ありがとうございます > ハイフンを省略できる電話番号の正規表現をお探しなのですね? おっしゃるとおりです。ですが、よろしければ、 /^0\d{1,4}-?\d{1,4}-?\d{4}$/ が080-1234などにもヒットしてしまうのかを教えていただけると嬉しいです
関連するQ&A
- 電話番号の正規表現について
電話番号の正規表現について 電話番号が正しいかチェックしたいと思い、ネットで調べた上で $tel = "03-1111-1111"; $regtel = '/^0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}$/'; if( ! preg_match( $regtel, $tel ) ) { ※ } 上記のように組んでみたのですが、※のところにきてしまいます。 何か間違っているような気がするのですがわかりません。 何がおかしいのでしょうか?
- ベストアンサー
- PHP
- 正規表現で分からないことがあります。
正規表現で数字の間に「,」が入る場合と入らない場合があるのですが、どう書けばいいのでしょうか? 例えば、 1 1,2 0,1 122 等様々なパターンがある時、これらをヒットさせるにはどうすればいいのでしょうか? \d+だけだと、コンマのところでバラバラになってしまいます。 一回で全てをマッチさせる方法はありますか? 使用しているのはPHPです、よろしくお願いします。
- ベストアンサー
- PHP
- エクセルで電話番号にハイフンを入れるには?
はじめまして、表題の通りですが、なかなか難しくてうまく解決できませんので、ここで質問させていただきます。 電話番号に半角のハイフン(-)を入れて見やすくしたいと考えています。 電話番号には090などで始まる携帯の番号、大阪のように06で始まる番号、京都のように075で始まる番号、西宮市のように0798で始まる番号といろいろ入力されています。それぞれの市外局番の後にハイフンを入れて、残りの番号が8桁なら4桁+ハイフン+4桁、7桁なら3桁+4桁、6桁なら2桁+ハイフン+4桁のようにハイフンを入れていくにはどうしたらよいでしょうか? (例) 09012345678→090-1234-5678 0612345678→06-1234-5678 0751234567→075-123-4567 0798123456→0798-12-3456
- ベストアンサー
- オフィス系ソフト
- 正規表現で特定の単語を除外したい
javaという単語で検索するときjavascriptのjavaがマッチしてしまうのが煩わしいです。 正規表現で、javascriptという単語を含まず javaを含む行をマッチさせたい場合パターンはどのように書くものでしょうか?
- ベストアンサー
- Java
- 正規表現置換で
正規表現をかじりはじめたんですが… 〒000-0000 東京都○○○○ 電話~ を 〒000-0000★東京都○○○○ 電話~ このような置換はできるソフト、 もしくは正規表現記述方法はありますでしょうか? ちなみに正規表現というからには、当然 ・郵便番号はそれぞれべつ ・住所も東京都から始まるとは限らない マッチして欲しいのは、郵便番号と住所の間にある「 」(スペース)だけなのです。 よろしくお願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- 正規表現について教えてください。
正規表現について教えてください。 JavaScriptでプログラミングを行っています。 その中で文字列に対しゼロサプレスを行いたいと思い 調べた結果、正規表現を使用する以下のコードで 実現可能なことが分かりました。 val.replace(/^0+([0-9]+.*)/, "$1") コードを記述し実行すると確かに可能なのですが 正規表現を調べてみても何故これでゼロサプレスが可能なのか よく理解できませんでした。 申し訳ありませんが初心者でも理解できるように説明して頂けないでしょうか。 宜しくお願いします。
- ベストアンサー
- JavaScript
- 正規表現について
正規表現について質問が有ります。 プログラミング初心者なので、根本的な間違い等も犯している可能性もありますがご了承下さい。 今、javascriptを使ってフォームに入力されたメールアドレスの入力チェックを行おうとしています。 とりあえずはwebを漁って見つけたソースでチェックできる様にはなったのですが、もうちょっと拡張したいと思った所、つまずいてしまいました。 元のソースは if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/){ alert("error"); } という風にチェックをしており、 ******(@マークが無い) ***@(@の後半が無い) @***(@の前半が無い) などの基本的な形式に対してはチェックを行う様になっています。 しかし、hoge@hogeの様に書くと、適当に書いたドメインでもスルーしてしまいます。 そこで、ドメインのチェックも行おうとしているのですが、ここで詰まっています。 ちなみに今回は携帯のアドレスに限定してチェックを行おうと思っています。 javascriptでの正規表現について書いてあるページを見ながら下の様に書いたのですが上手く動作してくれません。 正規表現の書き方がおかしいのだろうとは思うのですが、どこがいけないのかよく分かりません。 if (!this.value.match(/^[\x01-\x7F]+@((([-a-z0-9]+\.)*[a-z]+)|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))$/) || /*ここから下を追加*/ (!this.value.match(/@(docomo|ezweb|softbank)\.ne\.jp$/) || !this.value.match(/@i\.softbank\.jp$/)){ alert("error"); } 最初はもとからある基本的な入力形式のチェックを行い、また@後のドメインが携帯のドメインでない場合にエラーを返す。というつもりで書きました。 ですが、***@docomo.ne.jpとしてもエラーが返って来てしまいます。 原因を教えていただけますか? また、もとからあった正規表現が何をどういう指定しているのかもキチンとは理解していないので、教えていただけるとうれしいです。 よろしくお願いします。
- ベストアンサー
- JavaScript
- 正規表現を教えてください。
正規表現を教えてください。 C#で正規表現を用いた文字列検索を勉強中なのですが、うまくマッチさせることができません。教えていただけないでしょうか。 検索対象の文字列は下のようになります。 キーワード;値; 文字列中に該当するキーワードが存在する場合に、その値を取得するプログラムを考えています。しかし、私の正規表現では2つ目の「;」を検出してしまい、キーワードのみを取得することが出来ずに困っています。 見当違いの表記をしているとは思うのですがどなたかお助けください。 match = Regex.Match(line, "^(.*);"); C#初心者なものです。
- ベストアンサー
- Microsoft ASP
お礼
ご回答ありがとうございます なるほどです!ありがとうございます
補足
最終的に以下のように「|」で区切り、「ハイフンあり|数字だけ」の正規表現を作りました /^0\d{1,4}-\d{1,4}-\d{4}$|^0\d{9,10}$/