热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

正则表达式大全进阶篇

常用正则表达式大全!(例如:匹配中文、匹配html)匹配中文字符的正则表达式:[u4e00-u9fa5]评

常用正则表达式大全!(例如:匹配中文、匹配html)

 匹配中文字符的正则表达式: [u4e00-u9fa5]  
  评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
  匹配双字节字符(包括汉字在内):[^x00-xff]
  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
  匹配空白行的正则表达式:ns*r
  评注:可以用来删除空白行
  匹配HTML标记的正则表达式&#xff1a;<(S*?)[^>]*>.*?|<.*? />
  评注&#xff1a;网上流传的版本太糟糕&#xff0c;上面这个也仅仅能匹配部分&#xff0c;对于复杂的嵌套标记依旧无能为力
  匹配首尾空白字符的正则表达式&#xff1a;^s*|s*$
  评注&#xff1a;可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)&#xff0c;非常有用的表达式
  匹配Email地址的正则表达式&#xff1a;w&#43;([-&#43;.]w&#43;)*&#64;w&#43;([-.]w&#43;)*.w&#43;([-.]w&#43;)*
  评注&#xff1a;表单验证时很实用
  匹配网址URL的正则表达式&#xff1a;[a-zA-z]&#43;://[^s]*
  评注&#xff1a;网上流传的版本功能很有限&#xff0c;上面这个基本可以满足需求
  匹配帐号是否合法(字母开头&#xff0c;允许5-16字节&#xff0c;允许字母数字下划线)&#xff1a;^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  评注&#xff1a;表单验证时很实用
  匹配国内电话号码&#xff1a;d{3}-d{8}|d{4}-d{7}
  评注&#xff1a;匹配形式如 0511-4405222 或 021-87888822
  匹配腾讯QQ号&#xff1a;[1-9][0-9]{4,}
  评注&#xff1a;腾讯QQ号从10000开始
  匹配中国邮政编码&#xff1a;[1-9]d{5}(?!d)
  评注&#xff1a;中国邮政编码为6位数字
  匹配身份证&#xff1a;d{15}|d{18}
  评注&#xff1a;中国的身份证为15位或18位
  匹配ip地址&#xff1a;d&#43;.d&#43;.d&#43;.d&#43;
  评注&#xff1a;提取ip地址时有用
  匹配特定数字&#xff1a;
  ^[1-9]d*$    //匹配正整数
  ^-[1-9]d*$   //匹配负整数
  ^-?[1-9]d*$   //匹配整数
  ^[1-9]d*|0$  //匹配非负整数&#xff08;正整数 &#43; 0&#xff09;
  ^-[1-9]d*|0$   //匹配非正整数&#xff08;负整数 &#43; 0&#xff09;
  ^[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&#43;|0)$  //匹配浮点数
  ^[1-9]d*.d*|0.d*[1-9]d*|0?.0&#43;|0$   //匹配非负浮点数&#xff08;正浮点数 &#43; 0&#xff09;
  ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0&#43;|0$  //匹配非正浮点数&#xff08;负浮点数 &#43; 0&#xff09;
  评注&#xff1a;处理大量数据时有用&#xff0c;具体应用时注意修正
  匹配特定字符串&#xff1a;
  ^[A-Za-z]&#43;$  //匹配由26个英文字母组成的字符串
  ^[A-Z]&#43;$  //匹配由26个英文字母的大写组成的字符串
  ^[a-z]&#43;$  //匹配由26个英文字母的小写组成的字符串
  ^[A-Za-z0-9]&#43;$  //匹配由数字和26个英文字母组成的字符串
  ^w&#43;$  //匹配由数字、26个英文字母或者下划线组成的字符串
  在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
  只能输入数字&#xff1a;“^[0-9]*$”
  只能输入n位的数字&#xff1a;“^d{n}$”
  只能输入至少n位数字&#xff1a;“^d{n,}$”
  只能输入m-n位的数字&#xff1a;“^d{m,n}$”
  只能输入零和非零开头的数字&#xff1a;“^(0|[1-9][0-9]*)$”
  只能输入有两位小数的正实数&#xff1a;“^[0-9]&#43;(.[0-9]{2})?$”
  只能输入有1-3位小数的正实数&#xff1a;“^[0-9]&#43;(.[0-9]{1,3})?$”
  只能输入非零的正整数&#xff1a;“^&#43;?[1-9][0-9]*$”
  只能输入非零的负整数&#xff1a;“^-[1-9][0-9]*$”
  只能输入长度为3的字符&#xff1a;“^.{3}$”
  只能输入由26个英文字母组成的字符串&#xff1a;“^[A-Za-z]&#43;$”
  只能输入由26个大写英文字母组成的字符串&#xff1a;“^[A-Z]&#43;$”
  只能输入由26个小写英文字母组成的字符串&#xff1a;“^[a-z]&#43;$”
  只能输入由数字和26个英文字母组成的字符串&#xff1a;“^[A-Za-z0-9]&#43;$”
  只能输入由数字、26个英文字母或者下划线组成的字符串&#xff1a;“^w&#43;$”
  验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为&#xff1a;以字母开头&#xff0c;长度在6-18之间&#xff0c;
  只能包含字符、数字和下划线。
  验证是否含有^%&&#39;&#39;,;&#61;?$"等字符&#xff1a;“[^%&&#39;&#39;,;&#61;?$x22]&#43;”
  只能输入汉字&#xff1a;“^[u4e00-u9fa5],{0,}$”
  验证Email地址&#xff1a;“^w&#43;[-&#43;.]w&#43;)*&#64;w&#43;([-.]w&#43;)*.w&#43;([-.]w&#43;)*$”
  验证InternetURL&#xff1a;“^http://([w-]&#43;.)&#43;[w-]&#43;(/[w-./?%&&#61;]*)?$”
  验证电话号码&#xff1a;“^((d{3,4})|d{3,4}-)?d{7,8}$”
  正确格式为&#xff1a;“XXXX-XXXXXXX”&#xff0c;“XXXX-XXXXXXXX”&#xff0c;“XXX-XXXXXXX”&#xff0c;
  “XXX-XXXXXXXX”&#xff0c;“XXXXXXX”&#xff0c;“XXXXXXXX”。
  验证身份证号&#xff08;15位或18位数字&#xff09;&#xff1a;“^d{15}|d{}18$”
  验证一年的12个月&#xff1a;“^(0?[1-9]|1[0-2])$”正确格式为&#xff1a;“01”-“09”和“1”“12”
  验证一个月的31天&#xff1a;“^((0?[1-9])|((1|2)[0-9])|30|31)$”
  正确格式为&#xff1a;“01”“09”和“1”“31”。
  匹配中文字符的正则表达式&#xff1a; [u4e00-u9fa5]
  匹配双字节字符(包括汉字在内)&#xff1a;[^x00-xff]
  匹配空行的正则表达式&#xff1a;n[s| ]*r
  匹配HTML标记的正则表达式&#xff1a;/<(.*)>.*|<(.*) />/
  匹配首尾空格的正则表达式&#xff1a;(^s*)|(s*$)
  匹配Email地址的正则表达式&#xff1a;w&#43;([-&#43;.]w&#43;)*&#64;w&#43;([-.]w&#43;)*.w&#43;([-.]w&#43;)*
  匹配网址URL的正则表达式&#xff1a;http://([w-]&#43;.)&#43;[w-]&#43;(/[w- ./?%&&#61;]*)?
  (1)应用&#xff1a;计算字符串的长度&#xff08;一个双字节字符长度计2&#xff0c;ASCII字符计1&#xff09;
  String.prototype.len&#61;function(){return this.replace([^x00-xff]/g,"aa").length;}
  (2)应用&#xff1a;Javascript中没有像Vbscript那样的trim函数&#xff0c;我们就可以利用这个表达式来实现
  String.prototype.trim &#61; function()
  {
  return this.replace(/(^s*)|(s*$)/g, "");
  }
  (3)应用&#xff1a;利用正则表达式分解和转换IP地址
  function IP2V(ip) //IP地址转换成对应数值
  {
  re&#61;/(d&#43;).(d&#43;).(d&#43;).(d&#43;)/g //匹配IP地址的正则表达式
  if(re.test(ip))
  {
  return RegExp.$1*Math.pow(255,3))&#43;RegExp.$2*Math.pow(255,2))&#43;RegExp.$3*255&#43;RegExp.$4*1
  }
  else
  {
  throw new Error("Not a valid IP address!")
  }
  }
  (4)应用&#xff1a;从URL地址中提取文件名的Javascript程序
  s&#61;"http://www.9499.net/page1.htm";
  s&#61;s.replace(/(.*/){0,}([^.]&#43;).*/ig,"$2") ;//Page1.htm
  (5)应用&#xff1a;利用正则表达式限制网页表单里的文本框输入内容
  用正则表达式限制只能输入中文&#xff1a;οnkeyup&#61;"value&#61;value.replace(/[^u4E00-u9FA5]/g,&#39;&#39;) "onbeforepaste&#61;"clipboardData.setData(&#39;&#39;text&#39;&#39;,clipboardData.getData(&#39;&#39;text&#39;&#39;).replace(/[^u4E00-u9FA5]/g,&#39;&#39;))"
  用正则表达式限制只能输入全角字符&#xff1a; οnkeyup&#61;"value&#61;value.replace(/[^uFF00-uFFFF]/g,&#39;&#39;) "onbeforepaste&#61;"clipboardData.setData(&#39;&#39;text&#39;&#39;,clipboardData.getData(&#39;&#39;text&#39;&#39;).replace(/[^uFF00-uFFFF]/g,&#39;&#39;))"
  用正则表达式限制只能输入数字&#xff1a;οnkeyup&#61;"value&#61;value.replace(/[^d]/g,&#39;&#39;) "onbeforepaste&#61; "clipboardData.setData(&#39;&#39;text&#39;&#39;,clipboardData.getData(&#39;&#39;text&#39;&#39;).replace(/[^d]/g,&#39;&#39;))"
  用正则表达式限制只能输入数字和英文&#xff1a;οnkeyup&#61;"value&#61;value.replace(/[W]/g,&#39;&#39;) "onbeforepaste&#61;"clipboardData.setData(&#39;&#39;text&#39;&#39;,clipboardData.getData(&#39;&#39;text&#39;&#39;).replace(/[^d]/g,&#39;&#39;


推荐阅读
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • 本文介绍了Go语言中正则表达式的基本使用方法,并提供了一些实用的示例代码。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文介绍了一种使用 JavaScript 计算两个日期之间时间差的方法。该方法支持多种时间格式,并能返回秒、分钟、小时和天数等不同精度的时间差。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 在 Vbox 和 Hbox 布局中,当用户点击容器添加一个矩形时,系统会自动为该矩形分配坐标并打印其位置信息。此外,在按键事件触发时,系统仅打印当前矩形的坐标值。这两种布局在特定的交互场景下,能够动态地管理和更新子组件的位置。 ... [详细]
  • 在Python中,通过实现一个便捷的函数来解码Base64编码的数据,并将其转换为数组形式。该函数能够将Base64字符串解码为字节数组,便于进一步处理。例如,可以使用如下代码片段进行解码:`base64_decode_array('6gAAAOsAAAD')`。这为处理二进制数据提供了高效且简洁的方法。 ... [详细]
  • 池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析
    池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析 ... [详细]
  • 本文探讨了如何在C#中实现USB条形码扫描仪的数据读取,并自动过滤掉键盘输入,即使不知道设备的供应商ID(VID)和产品ID(PID)。通过详细的技术指导和代码示例,展示了如何高效地处理条形码数据,确保系统能够准确识别并忽略来自键盘的干扰信号。该方法适用于多种USB条形码扫描仪,无需额外配置设备信息。 ... [详细]
author-avatar
黄秋蝉_961
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有