• ベストアンサー

「半角数字」と「+」を許可する正規表現の書き方

「半角数字」と「+」(半角プラス)を許可する正規表現を書きたいです。 検索していて このような電話番号のチェックはよく見掛けます。 preg_match('/^\d{2,5}-?\d1,5}-?\d{3,5}$/', $tel) 今回は、下記のデータを許可したいです。 1+ 1254+ 21+1000+ 5154+45+987+201+ 桁の指定は不要で、+の後ろには数値が無い場合もあります。 「+」は数字の後に必ず付いてきます。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こんな感じで <?php $sample=array( "1+","1254+","21+1000+","5154+45+987+201+" //OK ,"111" //数字だけ ,"+" //プラスだけだけ ,"+222+333+" //先頭がプラス ,"444+555" //最後がプラスじゃない ,"66-7+888+" //数字プラス以外を含む ); $pattern="/^(\d+\+)+$/"; foreach($sample as $val){ print $val."=&gt;"; print preg_match($pattern,$val)?"OK":"NG"; print "<br>\n"; } ?>

kzkz-16
質問者

お礼

動作テストしました! 完璧ですね! ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5092/13311)
回答No.1

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

kzkz-16
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現について

    電話番号の正規表現について質問です。 $value = '000-111-2222'; これだけだと通りますが function tel( $value ) { return !preg_match( '/^\d{2,3}\-\d{3,4}\-\d{4}$/', $value ); } 市外局番がなくても通るようにしたくこのようにしましたがはじかれます^^; function tel( $value ) { return !preg_match( '/^\d{2,3}\-\d{3,4}\-\d{4}$ | ^\d{2,4}\-\d{3,4}$/', $value ); } いずれのケースにも当てはまらないのではじくようにしたいのですが、実現するにはどう書けばいいのでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現で半角数字1桁のみを全角数字に変換

    お世話になります。 JavaScript(JSP)で、 正規表現で半角数字1桁のみ(2桁以上は変換しない)を、 全角数字に変換する方法を教えてください。 たとえば、 ”hoge3hoge5”文字列内の、 半角数字1桁のみを、 正規表現で、全角数字1桁に、それぞれ変換   ↓ ”hoge3hoge5” あわせて、 半角数字が2桁以上、連続で続いている場合には 変換せずに、半角数字のままにしておきたいです。 ”hoge33hoge5”    ↓ 正規表現で、半角数字1桁のみを、全角数字1桁に変換 (半角数字2桁以上は変換しない) ”hoge33hoge5” 以上になります。 もしご存じの方がいらっしゃいましたら、 よろしくお願いします。

  • 正規表現 半角数字1から100

    .Net Framework のRegex.Replace で、半角数字1から100の範囲を正規表現で指定する方法を教えてください。 よろしくお願いします。

  • 電話番号の正規表現について

    電話番号の正規表現について 電話番号が正しいかチェックしたいと思い、ネットで調べた上で $tel = "03-1111-1111"; $regtel = '/^0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}$/'; if( ! preg_match( $regtel, $tel ) ) { ※ } 上記のように組んでみたのですが、※のところにきてしまいます。 何か間違っているような気がするのですがわかりません。 何がおかしいのでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現について

    PHP5.2.4を使用しています。 1文字以上のアルファベットと数字の組み合わせは許可(含めて) かつ 「ab」は許可しない(含めない) という正規表現はどのように記述すれば良いのでしょうか?(「01ab」「abc」は許可、「ab」は許可しない) 一応自分なりに考えてみたのですが、 $str = "abc"; if (preg_match("/[^(ab)][a-z0-9]+/", $str)) { print "match<br>\n"; } やはり駄目でした・・・

    • ベストアンサー
    • PHP
  • 正規表現 半角英数字が混じっている場合

    正規表現について教えてください。 入力フォームより都道府県を入力した際に、 "東京都AAS421SBBss" や "AA1sss東京都" など、一部に半角英数字が含まれている場合、 どのような正規表現でマッチするのでしょうか? if(!preg_match("/[\xA1-\xFE][\xA1-\xFE]/",$address)) 感じで行ったのですが、最初に半角英数字だとマッチするのですが、 途中に半角英数字がある場合、マッチしなかったりと。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 正規表現の書き方について

    $a=aaaaaaあああ1111いいい2222; 上記の$aを <br>aaaaa<br>aあああ<br>1111いいい<br>22222<br> このようにしたいのですが、 条件1:半角英数字の頭に<br> 条件2:半角英数字が5つ続いたら<br> としたいのですが、正規表現の記述方法で悩んでいます。 $b=preg_match([a-zA-Z0-9],$a)がに該当したら これで受け取ったものをpreg_replace<br>で挟む?のでしょうか。 そもそも条件は1つ以上指定できないのかもしれませんが・・・。 何かご存知の方いましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現で、半角大文字と半角数字,ハイフン許可

    PHPを使った正規表現で困っています。 /^(\w|(?!-{2,})-)+$/ ・半角大文字(A~Z)、数字(0~9)とハイフン(-)のみ許可. ・先頭にハイフン(-)が利用できない. ・ハイフンは2回連続で利用できない.例) -- に対応したいと思っていますが、いろいろやってみましたが上記の方法で上手くいきません。

    • ベストアンサー
    • PHP
  • 正規表現のコーディングについてお願いします。

    こんにちは、よろしくお願いいたします。 正規表現パターンを書く場合に皆さんがどのようにされているか教えてください。 例えば(ちょっとムリヤリ感が強いですが)、'Price \5800-' という文字列の \5800 の部分に preg_match でマッチさせたいとします。 単純に考えると、 /\\\d+/ のようなパターンが思いつくのですが、それを文字列として preg_match に渡す際に、コードはどのように書かれますか? <?php   $str = 'Price \5800-';   //とりあえず、'/\\\d+/' と書き、'/\\\\\\d+/' と、\ をそれぞれの \ に書き足す   if ( preg_match('/\\\\\\d+/', $str, $match) ) {     print_r($match);   } ?> 「まず、パターンを書き、全ての \ の前に \ を書き足す。」というのが無難なのかな?と思い、そうしていますが、 そういった考え方で間違っていないでしょうか? どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • 正規表現で特定の半角数字を全角にするのは?

    正規表現で特定の半角数字を全角にするのは? マイフェスで文書編集をしています。 特定の記号[◎]の後ろにある半角数字だけを全角数字にしたいのですが、 記述方法がよくわかりません。 よろしくお願いいたします。