
No.4ベストアンサー
- 回答日時:
No2です。
以下だめですかねえ、問題ないと思うのですが..※ここに投稿する時半角カタカナのア-ンが全角カタカナのア-ンに勝手に変わってます。
<?php
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
$namae = $_REQUEST['namae'];
$patarn = "[^_a-zA-Z0-9ア-ン]+( [^_a-zA-Z0-9ア-ン]+)+";
if(mb_ereg_match($patarn,$namae)){
echo "match";
}else{
echo "unmach";
}
?>
返事が遅れて済みません。
開発用のPCを離れていました。
どうやら、全く問題なく機能しているようです。
文字コードを指定する必要が有ると言う事ですかね。
考えて下さって、有り難うございます。
これで作業が進みます。
No.3
- 回答日時:
utf-8でしたら、
preg_match('/^[ア-ンあ-ん亜-腕弌-熙a-zA-Z]+[ | ][ァ-ヶぁ-ん亜-腕弌-熙a-zA-Z]+$/', $name) > '0'
↓
preg_match('/^[ア-ンあ-ん一-龠a-zA-Z]+[ | ][ァ-ヶぁ-ん一-龠a-zA-Z]+$/', $name) > '0'
ですが、名字がひらがなというのはないような気がしたので、
↓
preg_match('/^[ア-ン一-龠a-zA-Z]+[ | ][ァ-ヶぁ-ん一-龠a-zA-Z]+$/', $name) > '0'
が、近似値と思ったのですが、「ひらがなのみでの入力の場合スペースを入れなくても真になってしまうようです」・・・あれ、何ででしょう?「一-龠」の中にスペースが含まれるとか?
レベル低くて済みませんでした。
>>これを元に自分も考えてみようと思います。
結果が分かったら教えてくださいませ。
すみません、返事が遅れてしまいました。
どうやらバグのようです。。
参考サイト↓
http://mlog.euqset.org/archives/php-users.php.gr …
半角スペースを使用すれば問題ないようですが。。。
姓名の間に半角スペースというのはユーザビリティーが最悪に。。
たしかに、名字がひらがなは無さそうなのでこのまま使おうと思います。
まぁよく考えたら、姓名別々に入力してPHP側でスペースを入れて結合するのが一番楽かなと。。。
今回は助けていただきありがとうございました。
No.2
- 回答日時:
マルチバイト対応のmb_ereg関数を使って、英数字と半角カタカナ以外
の文字全部の1文字以上としてしまえばどうでしょう。
if (mb_ereg_match("[^_a-zA-Z0-9ア-ン]+( [^_a-zA-Z0-9ア-ン]+)+", 対象変数))
回答ありがとうございます。
簡単な条件分岐のコードで試してみましたが、
Warning: mb_ereg_match() [function.mb-ereg-match]: mbregex compile err: premature end of char-class in /virtual/shady/public_html/phptest/test2_2.php on line 11
と言うエラーが出てしまいました。。。
No.1
- 回答日時:
$name = '斎 藤太郎';
if(preg_match('/^[ア-ンあ-ん亜-腕弌-熙a-zA-Z]+[ | ][ァ-ヶぁ-ん亜-腕弌-熙a-zA-Z]+$/', $name) > '0') print "全角スペースが入っています";
else print "全角スペースが入っていません";
--------------------------
(カタカナ、ひらがな、漢字)の文字 + 全角/半角スペース1個 + (カタカナ、ひらがな、漢字)の文字の正規表現です。
上記のはeuc-jpです。漢字は第二水準まで。
utf-8 にすると、亜-腕弌-熙 → 一-龠 に変更すると全ての漢字になります。
shift_jisは未確認。
厳密な確認をしていませんが。
回答有り難うございます。
概ね成功ですが、ただひらがなのみでの入力の場合スペースを入れなくても真になってしまうようです。
これを元に自分も考えてみようと思います。
ちなみにutf-8で開発しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
エクセルでの漢字、カタカナ、...
-
全角括弧と全角読点の間隔を狭...
-
記号は半角と全角どちらがよい...
-
PHPでMySQLに入力した半角スペ...
-
VBのソース検索で、コメントア...
-
半角記号、全角記号を含む正規...
-
VBScriptである文字列に半角文...
-
Replace関数は文字数の制限ある...
-
【Excel VBA】A列の全角・半角...
-
Excel2002 一桁数字だけ全角に置換
-
VBAのコマンドボタンの文字列の...
-
コンボボックスの項目中に改行を
-
ExcelVBAでメールを作成してメ...
-
文字化け変換方法
-
エディットボックスで改行
-
ソースコードの1行が長いとき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルのCOUNTIFが正しくカウ...
-
全角括弧と全角読点の間隔を狭...
-
特定の文字を簡単な操作で半角...
-
エクセルでの漢字、カタカナ、...
-
VBAで英数字入力チェックしたい。
-
XMLのタグ名の禁則文字
-
Phonetic関数を利用して文章中...
-
全角英数文字が嫌われる理由を...
-
半角記号、全角記号を含む正規...
-
半角スペース の文字化け...
-
Replace関数は文字数の制限ある...
-
パソコンで全角、半角文字の切...
-
記号は半角と全角どちらがよい...
-
2つ以上の連続する空白文字を除去
-
文字列中の両丸括弧を取り除くV...
-
バッチファイル 全角検索
-
半角英数文字を全角英数文字に...
おすすめ情報