检测中文

项目中有一个地方需要检测用户的输入,而且客户要求不能输入中文。限制只能输入中文的方法比较多,主要是以下的方法:

1、检测每个字符的Ascii ,判断是否在 255 以内;

2、用正则表达式。eg: [^/x00-/xff]

以下就是用 2 来实现的:

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please enter the data.");

            string strTest = Console.ReadLine();

            while(strTest != null)
            {
                if (strTest.Trim().ToLower().Equals("stop") )
                {
                    break;
                }

                IsChinese(strTest);

                Console.WriteLine("/nPlease enter the data.");
                strTest = Console.ReadLine();
            }
           
        }

        /// <summary>
        /// 检查是否为汉字
        /// </summary>
        /// <param name="str">需要检查的字符串 </param>
        /// <returns>true:字符串中有汉字 </returns>
        /// 实现流程:
        ///     1、构造正则匹配表达式
        ///     2、判断是否有中文
        private static bool IsChinese(string str)
        {
            string strChinesePatterns = "[^/x00-/xff]";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strChinesePatterns);
            System.Text.RegularExpressions.MatchCollection mch = reg.Matches(str, 0);
            if (mch.Count > 0)
            {
                foreach(Match mach in mch)
                    Console.WriteLine(string.Format("{0} = {1} ", mach.Index.ToString(), mach.Value));

                Console.WriteLine(string.Format("[ {0} ] contains {1} chinese.", str, mch.Count.ToString()));

                return true;
            }
            else
            {
                Console.WriteLine("No chinese.");
                return false;
            }
        }
    }
}

时间: 2024-11-03 03:23:36

检测中文的相关文章

fgets-ubuntu下用fget读取每行文本后怎么检测中文标点?

问题描述 ubuntu下用fget读取每行文本后怎么检测中文标点? ubuntu下,用fgets()读取每行后,想判断其中是否含有标点符号(句号逗号),求指点,谢谢!(C语言) 解决方案 遍历字符数组,然后一个个跟句号字符比较==判断 解决方案二: 自己顶,up.....

Linux 下 php 转DOC转PDF转SWF实现百度的文库预览功能

去年开发了一个OA系统,需要实现文档一键上传并实现在线预览,类似百度文库的功能. 系统环境:CentOs5.5 用到的工具:Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper 网上找了些资料,早有人已经实现了这样的功能,只不过是用JAVA来写的东东,PHP的没找着. 结合网上的资料根据实现操作经验. 纪录并总结一下: 整体思路如下: 实现步骤: 1. DOC上传   2. DOC转成PDF   3. PDF转成SWF  4. 显示 基于对

Wix打包系列(七) 添加系统必备组件的安装程序

原文:Wix打包系列(七) 添加系统必备组件的安装程序     我们知道在vs的打包工程中添加系统必备组件是一件很容易的事情,那么在wix中如何检测系统必备组件并在安装过程中安装这些组件.这里以.Net Framework组件作为必备组件为例:         7.1 检测.Net Framework 版本         步骤1:为安装项目添加WiX .NET extensions库的引用     如果是命令行方式使用wix,那么需要在candle和light的时候添加如下参数: -ext W

深度技术GHOSTXP八分钟快速装机版 V3.5BT版 下载_常用工具

深度Ghost XP 快速装机版3.5_八分钟装机板,此次制作的版本 我们自己经过多次的测试 编号:        1                                                    2 cpu:    毒龙1.1                                        赛扬1.3 主板:    KT333                                          Intel815 内存:    512     

检查是否全中文文字母

问题描述 //检查是否全英文字母functionIsAlpha(strErrorTips){varii,charp;for(ii=0;ii<this.m_lLength;ii++){charp=this.m_strContent.charAt(ii);if(charp&0x00ff){alert(strErrorTips);return(this.m_bCheck=false);}}return(this.m_bCheck=true);}只要把例子中的0x00ff修改就可以了,但是不知道改成

hd tune pro中文专业版硬盘检测工具曲线图黄点是什么?

  浅蓝色曲线,代表的是检测过程中检测到硬盘每一秒钟的读取速率.黄色点代表硬盘的寻道时间.在右边还可以看到清楚的数据,传输速度的最小值,最大值,和平均值.还显示了数据的存取时间,和突发数据传输率.CPU的占用率. hd tune中文专业版使用教程 以下是网友提供两幅测试图片. 测试机型:Y460A-ITH 测试硬盘:希捷320G 7200转硬盘. 第一幅图为释放后系统测试结果; 第二幅图是关闭联想一些相关软件进程后的测试结果; 说明:系统和软件的运行都会影响测试结果的.所以在不同的环境下测试的结

asp检测是否为中文字符函数_应用技巧

<% '****************************** '函数:CheckChinese(strng) '参数:strng,待验证字符 '描述:检测是否为中文字符,返回值:中文为true,否则false '示例:<%=CheckChinese(strng)%> '****************************** Function CheckChinese(strng) CheckChinese = true Dim regEx, Match Set regEx

检测含有中文字符串的实际长度_基础应用

我们在实际过程中要经常去检测含有中文字符串的实际长度, 因为中文字符,和英文字符在一起的话.判断起来你麻烦点. 原理跟在asp中的一样.逐个去判断.是中文加2英文加1. 复制代码 代码如下: ASCIIEncoding n = new ASCIIEncoding(); byte[] b = n.GetBytes(str); int l = 0; // l 为字符串之实际长度 for (int i=0;i <= b.Length-1;i++) { if (b[i] ==63) //判断是否为汉字或

Oracle中检测字段是否包括中文字符

oracle中检测字段是否包括中文字符 select *   from (select 'abcdef' aa from dual          union all  select 'abc这是什么de' aa from dual)  where aa <> convert(aa, 'us7ascii', 'zhs16gbk');   aa -------- abc这是什么de 参考一下 select * from tb_miles_cb_order where convert(varch