php 半形與全形相關的正則

來源:互聯網
上載者:User

標籤:http   io   for   ar   cti   html   sp   on   ad   

半形的全部確認,帶小初音的確認法則

^[?-????-???? -]+$

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

php 半形與全形相關的正則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.