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