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>

时间: 2024-10-05 11:01:24

php 半角与全角相关的正则的相关文章

全角转半角-半角转全角

package com.sogou.html; public class FullHalfReverse { /** * 半角转全角 */ public static String ToSBC(String input) { char[] c = input.toCharArray(); int length=c.length; for (int i = 0; i < length; i++) { if (c[i] == ' ') { c[i] = '\u3000'; } else if (c[

半角与全角之间的转化[转]

一.半角与全角之间的转化 /// <summary> /// 半角转全角 /// </summary> /// <param name="BJstr"></param> /// <returns></returns> static public string GetQuanJiao(string BJstr) { char[] c = BJstr.ToCharArray(); for (int i = 0; i &

半角转换为全角 判断是否是全角

#region 半角转换为全角 /// <summary> /// 半角转换为全角 ////转全角的函数(SBC case) ///任意字符串 ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// </summary> /// <param name="input"></param> /// <returns></return

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

原文地址:http://www.jb51.net/article/43650.htm html原文件中tppabs标记是Teleport Pro软件留下的标记.该软件是离线浏览器,下载完整个网页后,它会在图片或超级链接标签内插入tppabs标签,以记录该图片或超级链接指向的原始地址.因为这个标签不是合法标签,所以普通浏览器会忽略它.但可以通过element.getAttribute("tppabs")在JS中读取这个属性. 如我们手动清除的话,那将是一个无法估计的工作量,需要批量清除.

最全判断手机号码正则方法

//判断是否为手机号// if(preg_match("#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#",$filter))// if(preg_match("/^0?1[3|4|5|6|7|8][0-9]\d{8}$/",$filter)) if(preg_match("/^0?1[0-9][0-9]\d{8}$/",$filt

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

今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1."\s"匹配的是哪一种空格? 正则表达式中\s匹配任何空白字符,包括空格.制表符.换页符等等:中文全角空格 \s 并不能匹配中文全角空格. \s 只能匹配下面六种字符(详见 java.util.regex.Pattern 的 API DOC): 半角空格( ) 水平制表符(\t) 竖直制表符

工具类:全角半角相互转换

/** * 半角转全角 * @param input String. * @return 全角字符串. */ public static String ToSBC(String input) { char c[] = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == ' ') { c[i] = '\u3000'; } else if (c[i] < '\177') { c[i] = (char) (c[i

js对全角与半角的验证,相互转化以及介绍

1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符.在全角中,字母和数字等与汉字一样占据着等宽的位置. 半角:是指一个字符占用一个标准的字符位置.半角占一个字节. 半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母.数字和字符都是半角的. 每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间).汉语.日

在获取网页时半角全角字符混合的问题

在获取网页数据时,遇到一个问题.获取的数据在解析成中文时由于字符中包含半角和全角的字符,总是不能全部显示正确.一开始总想有什么解析方法可以用来处理这种数据.网页本身是utf-8格式,按理来说不应该有这个问题.后来发现是Dotnet中WebClient类默认会将中文转成gb2312.此时与原始的utf-8的数据相比,数据已有丢失,所以我判断再怎么恢复也不行(但不确定).那WebClient有该属性配置么?果然!将Encoding属性设为utf-8就从头上解决了这个问题.回想之前在用扫码仪获取二维码