收录日期:2018/12/12 11:36:10 时间:2016/05/22 09:12:34 标签:基础编程
怎么让程序判断一段文本中的中文字符和英文字符
譬如下面这句:

全球化的趋势在China蔓延。


这句话怎么按照字符(中文字符,英文字符)一个一个的循环取出来?

谢谢
http://www.zmcn.com/bbs/html/5_191.htm
Rem 汉字判断
function isChinese(para)
       on error resume next
       dim str
       dim i
       if isNUll(para) then 
          isChinese=false
          exit function
       end if
       str=cstr(para)
       if trim(str)="" then
          isChinese=false
          exit function
       end if
       for i=1 to len(str)
     c=asc(mid(str,i,1))
             if c>=0 then 
    isChinese=false 
              exit function
           end if
       next
       isChinese=true
       if err.number<>0 then err.clear
   end function
%>

如:
if not isChinese(request("name")) then
 errmsg=errmsg+"
"+"<li>用户名应为汉字"
 founderr=true
else
 username=trim(request("name"))
end if


这样更简单
 for(i=0;i<realname.length;i++){
  char=realname.charCodeAt(i);  
  if(!(char>255)){  
   alert("真实姓名应为汉字!");
   userform.realname.focus();
   return false;
   }

<input type=text name=txt>
<input type=button value=ok onclick="cc()">
<script language=javascript>
function cc()
{
var j = 0;
var s = document.all.txt.value;
if (s=="")return;
if (/[^x00-xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");
for (var i=0; i<s.length; i++)
{
if (s.charCodeAt(i) > 255) j = j + 2;
else j++
}
alert("字符数:"+j);
}
</script>
<?php
$s = "全球化的趋势在China蔓延。";
preg_match_all("/[\x80-\xff]?./",$s,$regs);
print_r($regs);
?>
楼上的能给简单讲解一下嘛?
好象就是取ASCII码大于127就是吧!
很简单,用正则表达式/[\x80-\xff]?./去匹配字符,结果在数组$regs中
按中文编码标准,一个汉字由两个字节组成,其中首字符的值>128即16进制80

由于中文的ASCII码是有一定的范围的。所以你可以用下面的正则表达式来表示中文。

/^[chr(0xa1)-chr(0xff)]+$/

下面是一个使用的例子:
$str = "我爱你:php";
if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str) {
  echo "这是一个纯中文字符串";
} else {
  echo "这不是一个纯中文字串";

结帖吧~!
繁体有区别吗?
BIG码汉字是0xA440-0xF97E、0xA4A1-0xF9FE吧?
以前我用一个切字符串的改处理简体就处理不了繁体改处理繁体就处理不了简体

如何同时对繁简体进行检测?
道理一样的,分ASCII代码段
/[\x80-\xff]?./
可以匹配任何字符,其中
[\x80-\xff]匹配扩展ascii码部分,.匹配任意字符
任何宽字符都由一个“扩展ascii码”字符和一个“任意字符”组成,只是这个“任意字符”是受限的

在SQL*PLUS下怎样查看一个字段的属性,如是否为主关键字。 帮小弟一把,我仅有的36分了,各位 在vc中如何将字符串转化成其对应的ascii码?用什么函数? 天啊!!怎么办啊,救命啊 内存分配的一个小问题 无聊,散分。只给前面十个。 用image控件可以互相转换ico,bmp,jpg三种格式的图片吗? 请问哪有NGWS下载? ?有没有啊 以下程序的输出值是 哪位朋友知晓如果Table与DbGrid绑定后,如何实现非第一索引的排序。 请问MSDN有中文版的吗?我们这的全是英文版的 我的 Win2000 出大问题了,急盼各位大虾赐教 请问那里有VB.NET软件下载呀 什么delphi命令可以打开网页呢? 到底有没有人知道如何可以在panel中动态的调用frame或者是form呢? 哪里有windowsXP下载? 送我能给的最大分,请教很小的问题,中高手进 聊天请进(thinkingdog) 大家来谈谈 IBM都有些什么认证???什么认证现在比较吃香???谢谢!!! 打印数窗问题求助! 如何使用UrlDownloadtoFile下载文件使用进度条? 如何用在两次用getTime()中得到两个不同的时间。 一个类似于牛角尖的问题(多余的CONST),不能忽视,请各位高手详细说明!!谢谢! 怎样读写注册表,每次都不成功,气死我也~! 各位救命啊,用 TClientDataSet.Load XML 的问题。。。。 娃呀呀,pb8怎么这么难安装?jaguar组建就用了5分钟,regester window又用了10分钟,重启动后,还没完,偶不敢装了,把碟退了出来,大家是不是也这样?//牛虻 请教高手一个ado的问题. 请问一个TWebBrowser的问题 请问:系统崩溃后,找不到BOOT,系统告诉:DOS基本分区为格式化?无法引导启动!