![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
preg_match関数はperl互換なのでデリミタ(区切り記号)が必要です。
正規表現文字列の前後に/を入れて下さい。preg_match("/^[a-z0-9\-\(\)\[\]\/\.\+\*\_\!\#\$\%\~\|\-\^\@\;\,\`\{\}\_]*$/i", $str )
です。その後にiを付けると大文字小文字を区別しないで検索してくれるのでA-Zは省いてあります。
エスケープは多少アバウトでも平気みたいです。
No.3
- 回答日時:
携帯電話のチェックですが、私は以下のようにチェックしています。
手順としては、最初にメールアドレスの形式をとっているかを調べて、そこを通過したら、@マーク以降に、携帯のアドレスが入っていないかをチェックする感じです。こなれていない部分もあるかもしれませんが、参考になればと思います。POSIX拡張正規表現の方に慣れているで、そっちを使っています。
if( !ereg("([[:alnum:]_-]+)@(.*).([[:alnum:]_-]+)",$email))
{
$error_message .= "* メールアドレスが正しくありません。<br />";
}
else if( ereg("([[:alnum:]_-]+)@(.*)",$email, $email_matches))
{
if( ereg(".?(docomo\.ne\.jp|vodafone\.ne\.jp|ezweb\.ne\.jp)",$email_matches[2]) )
{
$error_message .= "* 携帯電話のメールアドレスはご利用になれません。<br />";
}
}
No.1
- 回答日時:
正規表現で意味がある文字を検索文字列に使う場合はエスケープをしなければなりません。
例で言えば()-[]/.+*\などがそうです。ハイフンだけは\-としているようですので、他の文字も頭に\を付けましょう。\文字自体は\\と2つ並べます。ただ、ereg関数で\-がうまく動かない例が参考URLの質問にあります。「一つ以上の文字列」という表現が何をしようとしているのかわからないのですが、アドレスのアカウント部分の事でしょうか。アドレスチェックであればアドレスとして使用可能な文字を1文字以上(正確にはドコモの場合3文字以上です)という事で
[a-zA-Z0-9\-_\.]+(一文字以上)
[a-zA-Z0-9\-_\.]{1,}({x,}のXの部分を変えれば任意の文字数以上)
で良いかと思います。
上記のうまく動作しない例や動作時間を考えると、可能であればpreg_match関数の方を使ったほうが良いと思います。
参考URL:http://okweb.jp/kotaeru.php3?q=1461806
この回答への補足
さっそくの回答ありがとうございます。
preg_match関数で下記のようにすると、警告がでてしまいます。。
if( !preg_match("^[a-zA-Z0-9\-\(\)\[\]\/\.\+\*\_\!\#\$\%\~\|\-\^\@\;\,\`\{\}\_]*$", $str ) ) {
処理
}
Warning: No ending delimiter '^' found
全てに対して、¥コードをつけるのは間違っていますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- その他(コンピューター・テクノロジー) 正規表現の置換で数値を合計したいです。 2 2022/10/17 11:01
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- 数学 正規数の定義で分からないことがあります。 正規数の定義について専門書において 「xがr進正規であると 1 2023/07/17 20:50
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で特定のHTMLタグのク...
-
文字列から数値だけ取得するに...
-
全角で囲まれた文字列の抽出を...
-
VBAのコマンドボタンの文字列の...
-
記号は半角と全角どちらがよい...
-
1バイト文字の上位4ビット・...
-
文字化け変換方法
-
全角英数文字が嫌われる理由を...
-
複数行の文字列を1行にまとめる...
-
エクセルVBA 文字列領域が不足...
-
選択したセルでダブルクリック...
-
文字の入力で横バー上段、中断...
-
ソースコードの1行が長いとき...
-
掲示板で改行されない
-
Excel関数「COUNTIF」で”文字”...
-
VBAでCSVをExcelに取り込む時に...
-
\\nと\\rの違い
-
JAVA System.out.println の ...
-
最終行の改行について
-
○個ずつ改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
、"(ダブルクォーテーション)...
-
VBAを使ってHTMLソースから特定...
-
PHPで変数から1行目だけを取得...
-
Excelで数字のみを2倍3倍にする...
-
preg_matchでエラーが出ます。
-
正規表現でシングルクォーテー...
-
URLを抽出する正規表現
-
正規表現パターンの記入方法に...
-
PHPで<a>タグ内からURLと文字を...
-
PHP 複数行の正規表現
-
PHPの正規表現で住所を分けるに...
-
電話番号のチェック ハイフン...
-
ereg_match関数について
-
正規表現で「0」のみ抽出
-
PHPメールフォーム URLと半角...
-
preg_matchで Warning: Undefin...
-
phpでメールアドレス入力の入力...
-
正規表現で特定のHTMLタグのク...
-
preg_matchで指定ファイルのタ...
-
変数に指定文字列が含まれると...
おすすめ情報