常用的正则整理
常用正则
作用 | 表达式 | 备注 |
---|---|---|
匹配中文字符 | [u4e00-u9fa5] |
|
匹配双字节 | [^x00-xff] |
一个双字节字符长度计2,ASCII字符计1 |
匹配空白行 | ns*r |
可以用来删除空白行 |
匹配HTML标记 | < (S*?)[^>]*>.*?|< .*? /> |
仅仅能匹配部分,无法针对嵌套匹配 |
匹配首尾空白字符 | ^s*|s*$ |
|
Email地址 | w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* |
|
网址URL | [a-zA-z]+://[^s]* |
|
匹配帐号 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
字母开头,允许5-16字节,允许字母数字下划线 |
国内座机号码 | d{3}-d{8}|d{4}-d{7} |
例如:021-87888822 |
QQ号 | [1-9][0-9]{4,} |
|
中国邮政编码 | [1-9]d{5}(?!d) |
|
中国身份证 | d{15}|d{18} |
不是很精准,没有包含身份证有X的情况 |
匹配ip地址 | d+.d+.d+.d+ |
匹配特定数字
作用 | 表达式 |
---|---|
正整数 | ^[1-9]d*$ |
负整数 | ^-[1-9]d*$ |
整数 | ^-?[1-9]d*$ |
非负整数 (正整数 + 0) | ^[1-9]d*|0$ |
非正整数(负整数 + 0) | ^-[1-9]d*|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)$ |
非负浮点数(正浮点数 + 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-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-Za-z0-9]+$ |
由数字、26个英文字母或者下划线组成的字符串 | ^w+$ |
密码:以字母开头,长度在6-18之间 | ^[a-zA-Z]w{5,17}$ |
其他骚操作
应用:利用正则表达式分解和转换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!”)
}
}
注意:以上代码均为本身网络上收集整理,只为方便自己查找做的记录。