半角的全部确认,带小初音的确认法则

^[ア-ン゙゚ァ-ョッヲー -]+$

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
  <TITLE> convert_kana </TITLE>
 </HEAD>

<BODY>
  <?php

/**
 * 全角を半角にする
 * @param    string $instr 変換前文字列
 * @return    string 変換後文字列
*/
function zen2han($instr) {
    $flag = FALSE;            //直前文字が全角カタカナならTRUE
    $len = mb_strlen($instr);
    $ofst = 1;
    $outstr = '';

for ($ofst = 0; $ofst < $len; $ofst++) {
        $ch = mb_substr($instr, $ofst, 1);
        if ($ch == 'ー') {
            if ($flag)    $outstr .= 'ー';                    //カタカナの長音記号
            else        $outmb_ereg_matchstr .= $ch;
        } else if (('[ァ-ヶ]+', $ch)) {    //カタカナの範囲
            $outstr .= mb_convert_kana($ch, 'k');
            $flag = TRUE;
        } else if (mb_ereg_match('[0-9]+', $ch)) {    //全角数字の範囲
            $outstr .= mb_convert_kana($ch, 'n');
            $flag = TRUE;
        } else if (mb_ereg_match('[A-Z]+', $ch)) {    //全角英字の範囲
            $outstr .= mb_convert_kana($ch, 'r');
            $flag = TRUE;
        } else if (mb_ereg_match('[ぁ-ん]+', $ch)) {    //ひらがなの範囲
            $flag = TRUE;
            $outstr .= mb_convert_kana($ch, 'h');
        } else {
            $outstr .= $ch;
            $flag = FALSE;
        }
    }
    return $outstr;
}

/**
 * 引数の文字列が全て半角文字であるかチェックする
*/
function is_half($instr) {
    $flag = FALSE;            //直前文字が全角カタカナならTRUE
    $len = mb_strlen($instr);
    $ofst = 1;
    $outstr = '';

for ($ofst = 0; $ofst < $len; $ofst++) {
        $ch = mb_substr($instr, $ofst, 1);
        if (mb_ereg('^[ア-ン゙゚ヲー]+$', $ch)) {
            $flag = TRUE;
        } else if (mb_ereg('^[a-zA-Z0-9]+$', $ch)) {
            $flag = TRUE;
        } else {
            $flag = false;
        }
        if($flag == false) break;
    }
    return $flag;
}

mb_internal_encoding('EUC-JP');

//$str = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん";
$str = "日本02Ab56asbaあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん";

print  $str . "<br />";

// 全角カタカナを半角にする
$str = zen2han($str);
print  $str . "<br />";

if(is_half($str) == true) {
    print "ok";
} else {
    print "error";
}

?>
 </BODY>
</HTML>

最新文章

  1. python 数据类型 ---字符串
  2. 常见的HTTP Headers
  3. Request.ServerVariables 获取服务器或者客户端信息
  4. [JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法
  5. &lt;Web 之困 现代Web应用安全指南&gt;一本好书 69.00?
  6. springMVC基础
  7. timeSeries db之:使用Metrics监控应用程序的性能 (zz)
  8. rabbitmq例子
  9. cocos run -p android报错 BUILD FAILED ..\ant\build.xml:892
  10. 检测php网站是否已经被攻破的方法
  11. JavaEE的13种核心技术
  12. Oracle Data Guard
  13. MFC的杂七杂八
  14. Linux是如何启动的
  15. PHP之工厂方法模式(三)
  16. torch分类问题
  17. python中的函数和变量
  18. Python入门-三级菜单
  19. 二叉搜索树(BST)详解
  20. 9-安装redis

热门文章

  1. 利用if else咱们结婚吧
  2. 利用if else判断几点是什么时间段
  3. web前端相关的书籍
  4. 应用程序域 z
  5. Colour your Log4Net events in your RichTextBox zz
  6. Entity Framework快速入门笔记—增删改查
  7. sql server 自定义函数
  8. 使用aespython进行ECB加解密示例
  9. Java编程常见问题汇总
  10. 【转】shell 教程——02 几种常见的Shell