常用正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用正则表达式相关的知识,希望对你有一定的参考价值。

常用的数字正则(严格匹配)  
  正则        含义  
^[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]+$/i  
^[A-Z]+$    匹配由26个英文字母的大写组成的字符串   
^[a-z]+$    匹配由26个英文字母的小写组成的字符串   
^[A-Za-z0-9]+$  匹配由数字和26个英文字母组成的字符串 注意\w包含下划线_  
^\w+$   匹配由数字、26个英文字母或者下划线组成的字符串    
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。   
 

 

 

匹配中文字符  
普遍使用的正则是[\u4e00-\u9fa5],

 

 

匹配双字节字符(包括汉字在内)  
[^\x00-\xff],可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1),代码示例如下:  
console.info( "abc".replace( /[^\x00-\xff]/g,"aa" ).length ) // 3  
console.info( "汉字".replace( /[^\x00-\xff]/g,"aa" ).length ) // 4  
console.info( "abc汉字".replace( /[^\x00-\xff]/g,"aa").length ) // 7  

 

 

匹配html标记的正则表达式  
var rtag = /^<([a-z]+)\s*\/?> (?:<\/\1>)?$/i // 去掉了中间的.*  
这个正则的应用范围仅限于简单的标签匹配、提取,不能匹配嵌套标记。  

 

 

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

 

 

匹配邮箱
 /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

 

 

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

 

 

匹配国内电话号码   
\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位数字 
(?!)意思是否定顺序环视,不匹配右边的内容。[1-9]\d{5}(?!\d)整个表达式的意思就是:以1至9的数字开头,后面接5位任意数字,并且第6位开始(也就是邮编的末尾)不能是任意数字。\d就是任意数字的意思。

 

 

验证身份证
/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
要求:
1、15位或18位,如果是15位,必需全是数字。
2、如果是18位,最后一位可以是数字或字母Xx,其余必需是数字。

以上是关于常用正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

text 正则表达式片段

markdown 正则表达式模式片段

常用的正则表达式代码汇总

JavaScript正则表达式入门

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)