• php 半角与全角相关的正则


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

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

    <!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>

  • 相关阅读:
    Servlet文件上传下载
    通过jquery将多选框变单选框
    Java 浮点数精度控制
    JS实现点击table中任意元素选中
    SpringMVC-时间类型转换
    SpringMVC--提交表单
    路径 专题
    防盗链
    Request
    RequestResponse简介
  • 原文地址:https://www.cnblogs.com/sunxun/p/3938882.html
Copyright © 2020-2023  润新知