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

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

<!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 半角与全角相关的正则的更多相关文章

  1. 【转载】 C#中全角转半角以及半角转全角

    半角指的是一个字符占用一个标准字符的位置.全角指一个字符占用两个标准字符位置的状态.在C#中,我们可以通过程序的方法,将相应的半角字符串信息转换为全角类型,也可以实现全角转半角功能. 相应封装好的方法 ...

  2. c# 半角转换为全角 判断是否是全角

    #region 半角转换为全角 /// <summary> /// 半角转换为全角 ////转全角的函数(SBC case) ///任意字符串 ///全角空格为12288,半角空格为32 ...

  3. java常用工具类 - 全角转半角、半角转全角

    全角转半角.半角转全角代码 /** * <PRE> * 提供对字符串的全角->半角,半角->全角转换 * codingwhy.com * </PRE> */ pub ...

  4. php版 日文半角转全角

    工作需要,写的这个 /* *转载请注明 http://www.cnblogs.com/kclteam/p/5278923.html$str //参数可以是字符串或数组*/ function HkToF ...

  5. C# 半角?全角

    /// <summary> /// 将资料表中已修改的资料行数据去左右空格.全角转半角 /// </summary> public sealed class FieldFitS ...

  6. 什么?你还不会身份证号码验证?最全的身份证正则验证js

    话不多说上代码 //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 function cidInfo(code) { var city={11:" ...

  7. [转]最全的用正则批量去除Teleport Pro整站下载文件冗余代码

    原文地址:http://www.jb51.net/article/43650.htm html原文件中tppabs标记是Teleport Pro软件留下的标记.该软件是离线浏览器,下载完整个网页后,它 ...

  8. 关于JAVA正则匹配空白字符的问题(全角空格与半角空格)

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1.& ...

  9. Java全角、半角字符的关系以及转换

    如果搞明白了Java中全角字符和半角字符之间的关系,那他们之间的转换就不是个麻烦事儿.你只需要对这个关系有那么一个印象就足够了. 全角字符与半角字符的关系 通过下面的代码能看到Java中所有字符以及对 ...

随机推荐

  1. MST(prim)+树形dp-hdu-4756-Install Air Conditioning

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4756 题目意思: n-1个宿舍,1个供电站,n个位置每两个位置都有边相连,其中有一条边不能连,求n个 ...

  2. insert into select * from 锁表

    mysql[192.168.11.187] processid[249] root@localhost in db[zjzc] hold transaction time 197 112069858, ...

  3. 如何禁止anonymous用户访问nexus

    nexus在默认情况下是允许anonymous用户浏览仓库,并下载仓库中的jar包的,如果我们搭建的私服是有公网IP的,必须要进行设置,使得anonymous用户的权限被禁用.操作步骤如下: 使用管理 ...

  4. 《C语言程序设计现代方法》第2章 编程题

    7 编写一个程序,要求用户输入一个美金数量,然后显示出如何使用最少的20美元.10美元.5美元和1美元来付款. 提示:将付款金额除以20,确定20美元的数量,然后从付款金额中减去20美元的总金额.对其 ...

  5. jQuery技术内幕预览版.pdf3

    jQuery.fn.init(selector,context,rootjQuery):构造函数 jQuery.fn.init() 负责解析参数 selector 和 context 的类型,并执行相 ...

  6. map/reduce实现数据去重

    import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.co ...

  7. modelsim使用命令

    1. 常用仿真命令 vlib work    // 建立work仿真库 vmap work wrok   // 映射库 vlog   -cover  bcest  *.v    // 加覆盖率分析的编 ...

  8. jquery获取节点的时候获取包含自己在内的HTML标签

    jquery获取某个标签的html()方法的时候总是只能获取内部的 如果获取包含自身的HTML代码呢? 用.prop("outerHTML")方法获取 <div id=&qu ...

  9. Shell脚本高级应用 --实现远程MySQL自动查询[转

    #!/bin/sh Host=192.168.5.30 User=abccdef PW=123456 MSG=`mysql -h$Host -u$User -p$PW <<EOF show ...

  10. Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 10

    今天编译一个project,我设置为api 14,可是编译报错: Using 1.7 requires compiling with Android 4.4 (KitKat); currently u ...