php 判断是否是日文,php正则判断中文韩文的编码的例子
中文编码
双字节字符编码范围:
1. GBK (GB2312/GB18030)
\x00-\xff →GBK双字节编码范围
\x20-\x7f →ASCII 取出非汉字的字符
\xa1-\xff 中文 →gb2312 取出所有中文(不包括字母数字和字符)
\x80-\xff 中文 →gbk 取出所有中文(不包括字母数字和字符)
2. UTF-8 (Unicode)
\一-\? →(中文) 取出所有中文
\x3130-\x318F →(韩文) 取出所有韩文
\xAC00-\xD7A3 →(韩文) 取出所有韩文
\?-\一 →(日文) 取出所有日文
^ 可以用来互相转换
ps: 韩文是大于[u9fa5]的字符
代码例子
//判断内容里有没有中文-GBK (PHP)
function check_is_chinese($s){
return preg_match('/[x80-xff]./', $s);
}
//获取字符串长度-GBK (PHP)
function gb_strlen($str){
$count = 0;
for($i=0; $i
$s = substr($str, $i, 1);
if (preg_match("/[x80-xff]/", $s)) ++$i;
++$count;
}
return $count;
}
//截取字符串字串-GBK (PHP)
function gb_substr($str, $len){
$count = 0;
for($i=0; $i
if($count == $len) break;
if(preg_match("/[x80-xff]/", substr($str, $i, 1))) ++$i;
++$count;
}
return substr($str, 0, $i);
}
//统计字符串长度-UTF8 (PHP)
function utf8_strlen($str) {
$count = 0;
for($i = 0; $i < strlen($str); $i++){
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
else die('Not a UTF-8 compatible string');
}
$count++;
}
return $count;
}
//截取字符串-UTF8(PHP)
function utf8_substr($str,$position,$length){
$start_position = strlen($str);
$start_byte = 0;
$end_position = strlen($str);
$count = 0;
for($i = 0; $i < strlen($str); $i++){
if($count >= $position && $start_position > $i){
$start_position = $i;
$start_byte = $count;
}
if(($count-$start_byte)>=$length) {
$end_position = $i;
break;
}
$value = ord($str[$i]);
if($value > 127){
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
else die('Not a UTF-8 compatible string');
}
$count++;
}
return(substr($str,$start_position,$end_position-$start_position));
}
//判断是否是有韩文-UTF-8 (JavaScript)
function checkKoreaChar(str) {
for(i=0; i
if(((str.charCodeAt(i) > 0x3130 && str.charCodeAt(i) < 0x318F) || (str.charCodeAt(i) >= 0xAC00 && str.charCodeAt(i) <= 0xD7A3))) {
return true;
}
}
return false;
}
//判断是否有中文字符-GBK (JavaScript)
function check_chinese_char(s){
return (s.length != s.replace(/[^x00-xff]/g,"**").length);
}
总结
正则表达式经常来判断中文和韩文等非英文字符,备份一下这些编码的范围以方便查询。
在正则表达式中经常要判断中文,gbk编码是双字节,而utf8是三字节
php 判断是否是日文,php正则判断中文韩文的编码的例子相关推荐
- js正则禁止输中文韩文日文
password = password.replace(/[\u4e00-\u9fa5]|[\u0800-\u4e00]|[\uac00-\ud7ff]/g,""); 通过unic ...
- Linux显示中文—韩文—日文-Zhcon使用方法
方法一. 需要下载的文件有两个:zhcon-0.2.5.tar.gz和zhcon-0.2.5-to-0.2.6.diff.gz. 下载地址:http://sourceforge.net/project ...
- .Net常用正则判断方法
.Net常用正则判断方法 原文:.Net常用正则判断方法 /// <summary>/// 判断string类型否为数字/// </summary>/// <param ...
- php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容
正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/u [php] $str ...
- 转载(中文、日文、韩文编码问题)
随着GB2312时代的没落和中国官方强制推行的GB18030的消沉,所有人都觉得,无需置疑地Unicode一统天下的时代即将,甚至已经来临了. 我也曾经是,现在仍旧是Unicode的推崇者. 推崇的理 ...
- php 正则匹配中文汉字
正则匹配中文汉字 正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/ ...
- 正则判断 手机邮箱的正确格式
// 正则判断手机号码地址格式 +(BOOL) isMobileNumber:(NSString *)mobileNum { /** * 手机号码 * 移动:134[0-8],135,136,137, ...
- jq 正则判断邮箱_Python正则15分钟入门
lypython群里有同学问我,如何从大量格式不确定的word文档抽取姓名.电话号码.邮箱等信息存入excel表格.通过之前我们的文章,他已经学会读取和写入文档和表格,但就是无法处理格式不确定的文档. ...
- js 正则判断用户是否输入表情
js 正则判断用户是否输入表情 var emouji = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;if(emouji.test(用户输入的值)){ ...
- C#正则判断手机号 邮箱 网址 日期 IP 身份证等
C#正则判断手机号 邮箱 网址 日期 IP 身份证等: /*********************************************************************** ...
最新文章
- 菜鸟学习Hibernate——简单的一个例子
- python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题
- 201621123058《java程序设计》第二周学习总结
- 7-161 梅森数 (20 分)
- 物联网专科专业必修课程_江西自考专科物联网技术专业的考试课程/科目
- 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
- [转]linux下完全备份数据库mysql
- 计算机学院网络与新媒体,网络与新媒体专业课程描述.PDF
- Linux命令----rpm
- 如何将Python程序打包成linux可执行文件
- day03-函数编程
- P5713 【深基3.例5】洛谷团队系统(C语言)
- 用Excel或WPS做两独立样本的T检验
- CTF Web_php_unserialize 详细解题过程
- iPhone 8价格已破发!苹果无奈只能减产
- C语言中遇到的问题之%d,%2d等的用法
- CAD闪退的解决方法
- Linux之CentOS7安装(VMware虚拟机安装及系统安装图文教程)
- 四川玖益科技:竞价活动对店铺的要求
- Java P1035 [NOIP2002 普及组] 级数求和 洛谷入门题