原文:匹配中文字符的正则表达式: [/u4e00-/u9fa5]

这里是几个主要非英文语系字符范围(google上找到的):

2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。

3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。

4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。

A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。

AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。

F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。

FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。

比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[/u3400-/u9FFF]+$

理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异

再到msn.co.jp复制了个'お', 也不得行..

然后把范围扩大到^[/u2E80-/u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文

而关于中文的正则表达式, 应该是^[/u4E00-/u9FFF]+$, 和论坛里常被人提起的^[/u4E00-/u9FA5]+$很接近

需要注意的是论坛里说的^[/u4E00-/u9FA5]+$这是专门用于匹配简体中文的正则表达式, 实际上繁体字也在里面, 我用测试器测试了下'中華人民共和國', 也通过了, 当然, ^[/u4E00-/u9FFF]+$也是一样的结果

匹配双字节字符(包括汉字在内):[^x00-xff] 

  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 

  匹配空白行的正则表达式:ns*r 

  评注:可以用来删除空白行 

  匹配HTML标记的正则表达式:<(S*?)[^>]*&gt;.*?|<.*? /> 

  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 

  匹配首尾空白字符的正则表达式:^s*|s*$ 

  评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 

  匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 

  评注:表单验证时很实用 

  匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 

  评注:网上流传的版本功能很有限,上面这个基本可以满足需求 

  匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 

  评注:表单验证时很实用 

  匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 

  评注:匹配形式如 0511-4405222 或 021-87888822 

  匹配腾讯QQ号:[1-9][0-9]{4,} 

  评注:腾讯QQ号从10000开始 

  匹配中国邮政编码:[1-9]d{5}(?!d) 

  评注:中国邮政编码为6位数字 

  匹配身份证:d{15}|d{18} 

  评注:中国的身份证为15位或18位 

  匹配ip地址:d+.d+.d+.d+ 

  评注:提取ip地址时有用 

  匹配特定数字: 

  ^[1-9]d*$    //匹配正整数 

  ^-[1-9]d*$   //匹配负整数 

  ^-?[1-9]d*$   //匹配整数 

  ^[1-9]d*|0$  //匹配非负整数(正整数 + 0) 

  ^-[1-9]d*|0$   //匹配非正整数(负整数 + 0) 

  ^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数 

  ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数 

  ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数 

  ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0) 

  ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0) 

  评注:处理大量数据时有用,具体应用时注意修正 

  匹配特定字符串: 

  ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 

  ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 

  ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 

  ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 

  ^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 

  在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 

  只能输入数字:“^[0-9]*$” 

  只能输入n位的数字:“^d{n}$” 

  只能输入至少n位数字:“^d{n,}$” 

  只能输入m-n位的数字:“^d{m,n}$” 

  只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$” 

  只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$” 

  只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$” 

  只能输入非零的正整数:“^+?[1-9][0-9]*$” 

  只能输入非零的负整数:“^-[1-9][0-9]*$” 

  只能输入长度为3的字符:“^.{3}$” 

  只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” 

  只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” 

  只能输入由26个小写英文字母组成的字符串:“^[a-z]+$” 

  只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” 

  只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” 

  验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 

  只能包含字符、数字和下划线。 

  验证是否含有^%&',;=?$"等字符:“[^%&',;=?$x22]+” 

  只能输入汉字:“^[u4e00-u9fa5],{0,}$” 

  验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 

  验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$” 

  验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$” 

  正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”, 

  “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。 

  验证身份证号(15位或18位数字):“^d{15}|d{}18$” 

  验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12” 

  验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 

  正确格式为:“01”“09”和“1”“31”。 

  匹配中文字符的正则表达式: [u4e00-u9fa5] 

  匹配双字节字符(包括汉字在内):[^x00-xff] 

  匹配空行的正则表达式:n[s| ]*r 

  匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 

  匹配首尾空格的正则表达式:(^s*)|(s*$) 

  匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 

  匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 

  (1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 

  String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;} 

  (2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现 

  String.prototype.trim = function() 

  { 

  return this.replace(/(^s*)|(s*$)/g, ""); 

  } 

  (3)应用:利用正则表达式分解和转换IP地址 

  function IP2V(ip) //IP地址转换成对应数值 

  { 

  re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式 

  if(re.test(ip)) 

  { 

  return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 

  } 

  else 

  { 

  throw new Error("Not a valid IP address!") 

  } 

  } 

  (4)应用:从URL地址中提取文件名的javascript程序 

  s="http://www.9499.net/page1.htm"; 

  s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ;//Page1.htm 

  (5)应用:利用正则表达式限制网页表单里的文本框输入内容 

  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,'))" 

  用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,'))" 

  用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,') "onbeforepaste= "clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'))" 

  用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,'

匹配中文字符的正则表达式: [/u4e00-/u9fa5]的更多相关文章

  1. java匹配中文汉字的正则表达式

    正则表达式匹配中文先要了解中文的编码 代码如下 复制代码 [u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符 [u4E00-u9FA5]汉字?[uFE30-uFFA0]全角字符 匹配中 ...

  2. Sublime 、NotePad++中查找匹配中文字符

    在Sublime .NotePad++中可以使用正则表达式 [\x{4e00}-\x{9fa5}] 查找匹配中文字符.

  3. [\u4e00-\u9fa5] //匹配中文字符

     [\u4e00-\u9fa5] //匹配中文字符 ^[1-9]\d*$    //匹配正整数^[A-Za-z]+$   //匹配由26个英文字母组成的字符串^[A-Z]+$      //匹配由26 ...

  4. PHP 正则表达式匹配中文字符

    例如在 MySQL 的 bin-log 文件中选取特定的数据库语句来恢复数据时,只要选出某个库的 INSERT INTO 操作(去掉了多余信息,只列出 SQL 语句) INSERT INTO `crm ...

  5. Python从文件中读取字符串,用正则表达式匹配中文字符的问题

    2013-07-27 21:01:37|           在Windows下,用Python从.txt文件中读取字符串,并用正则表达式匹配中文,在网上看了方法,用的时候发现中文没有被匹配.     ...

  6. python 匹配中文字符

    参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn. ...

  7. python正则匹配——中文字符的匹配

    # -*- coding:utf-8 -*- import re '''python 3.5版本 正则匹配中文,固定形式:\u4E00-\u9FA5 ''' words = 'study in 山海大 ...

  8. PHP正则表达式匹配中文字符

    网上有很多类似的文章,但往往都不能用 所以记录一下 preg_match_all("/([\x{4e00}-\x{9fa5}])/u", $input, $match); 注意:限 ...

  9. pg 匹配中文字符

    用到了正则表达式: 字段 ~'[\u4E00-\u9FA5]+$'; 注意:此表达式可能还不能取到最全的值.

随机推荐

  1. linux 登录windows跳板机

    rdesktop -u 用户 -p 密码 ip -r sound:on/off -g 1200:830

  2. AE中网络分析的实现 的各个类之间的关系

    原文AE中网络分析的实现 的各个类之间的关系 1.     创建网络数据集 在ArcCatalog中勾选网络分析模块,新建个人地理信息数据库—>新建要素数据集—>批量导入要素—>创建 ...

  3. [Ramda] Convert a Promise.all Result to an Object with Ramda's zip and zipObj

    In this lesson, we'll use Promise.all to get an array that contains the resolved values from multipl ...

  4. 日志报错Can't add self as subview

    #pragma mark- add 20151112 导航动画时间太短导致崩溃,重写UINavigationcontroller以下相关方法 - (id)navigationLock; ///< ...

  5. SEO那些事:一句代码一键分享网站

    这是很久以前就已经写过的笔记了,有一个习惯,每次遇到一个问题,都会进行百度,然后把解决问题的关键点记录下来,有人问我,为什么更新频率如此之快,大部分都是从前积累的知识点. 其实每天工作所涉及的知识点都 ...

  6. TensorFlow 实现深度神经网络 —— Denoising Autoencoder

    完整代码请见 models/DenoisingAutoencoder.py at master · tensorflow/models · GitHub: 1. Denoising Autoencod ...

  7. Using Eredis, Redis With Erlang

    http://no-fucking-idea.com/blog/2012/03/23/using-eredis-in-erlang/ Using Eredis, Redis With Erlang M ...

  8. 通过引入SiteMesh的JSP标签库,解决Freemarker与SiteMesh整合时,自定义SiteMesh标签的问题

    不少web项目,都用到了SiteMesh.SiteMesh可以和JSP.Freemarker等模版进行整合,有一定的好处,当然也有其不好的地方.我个人觉得,如果没有必要,不要在项目中引入太多的工具和技 ...

  9. POJ 2418-Hardwood Species(map)

    Hardwood Species Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 18770   Accepted: 740 ...

  10. events(事件): 基础1

    1    所有能触发事件的对象都是 EventEmitter 类的实例. 这些对象开放了一个 eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上. 事件名称通 ...