特殊元字符
\d 0~9任意一个数字
\D 非0~9之间的任意字符
\w 字母、数字或下划线 [a-zA-Z0-9_]
\W 非......
\s 匹配任意一个空白字符 (包括制表符)
\b 匹配边界符 "hello-world"
\n 匹配一个换行符
\ 转义字符 . 只表示一个小数点
. 表示除了\n之外的任意字符
^ 以某个字符开头
$ 以某个字符结尾
a|b a或者b任意一个
[158] [abc] a或b或c任意一个
[^abc] 除了a\b\c之外的
[a-z] 表示a到z中任意一个字母 [0-9]等价于\d
[^a-z]
() 分组
(?:) 当前分组只匹配不捕获
(?=) 正向预查
(?!) 反向预查
量词元字符
出现零到多次 等价于 {0,}
? 出现零到一次 等价于 {0,1}
- 出现一次到多次 等价于 {1,}
{m} 出现m次
{m,} 出现至少m次
{m,n} 出现m~n次
普通元字符
修饰符 斜杠后面的号
i ignoreCase 忽略大小写
g global 全局匹配
m multiline 多行匹配
举个栗子
<script>
var btn = document.getElementById("btn");
var txt = document.getElementById("txt");
btn.onclick = function() {
var val = txt.value;
//alert(val);
// 要求文本框输入字母x
var reg = /x/;
// 必须是一个符号并且是x
var reg = /^x$/;
// 以m开头 至少2个n 最多5个n
var reg = /^mn{2,5}$/
// 6个5
var reg = /^5{6}$/;
// 邮编
var reg = /^[0-9]{6}$/;
// 判断用户名 字母 数字 下划线 长度范围6~16
var reg = /^\w{6,16}$/;
// // 判断用户名 字母 数字 下划线 不能以数字开头 长度范围6~16
var reg = /^[a-zA-Z_]\w{5,15}$/;
// 至少6位密码
var reg = /^.{6,}$/
// 要求输入网址必须是 www.sina.com
var reg = /^www\.sina\.com$/;
// 要求输入 8+9
var reg = /^8\+9$/;
// 手机号码 以13开头或以15开头
var reg = /^1[35]\d{9}$/;
var reg = /^1(3|5)\d{9}$/;
var reg = /^(13|15)\d{9}$/;
var reg = /^[\u4e00-\u9fa5]+$/;
// 18-65
/*
18 19
20-59
60-65
*/
var reg = /^((1[89])|([2-5][0-9])|(6[0-5]))$/;
alert(reg.test(val));
}
</script>
常用正则
-
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
-
匹配双字节字符(包括汉字在内):[^\x00-\xff]
-
匹配空行的正则表达式:\n[\s| ]*\r
-
匹配HTML标记的正则表达式:/<(.)>.</\1>|<(.*) />/
-
匹配首尾空格的正则表达式:(^\s)|(\s$)
-
匹配IP地址的正则表达式:/(\d+).(\d+).(\d+).(\d+)/g //
-
匹配Email地址的正则表达式:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
-
匹配网址URL的正则表达式:http://(/[\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?
-
匹配非负整数:^\d+$
-
匹配正整数:^[0-9][1-9][0-9]$
-
匹配非正整数:^((-\d+)|(0+))$
-
匹配负整数:^-[0-9][1-9][0-9]$
-
匹配整数:^-?\d+$
-
匹配非负浮点数:^\d+(.\d+)?$
-
匹配正浮点数:^((0-9)+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
-
匹配非正浮点数:^((-\d+.\d+)?)|(0+(.0+)?))$
-
匹配负浮点数:^(-((正浮点数正则式)))$
-
匹配英文字符串:^[A-Za-z]+$
-
匹配英文大写串:^[A-Z]+$
-
匹配英文小写串:^[a-z]+$
-
匹配英文字符数字串:^[A-Za-z0-9]+$
-
匹配英数字加下划线串:^\w+$
-
匹配E-mail地址:^[\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+$
-
匹配URL:^[a-zA-Z]+://(\w+(-\w+))(.(\w+(-\w+)))(?\s)?$
-
或:http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([<>""])*$
-
匹配邮政编码:^[1-9]\d{5}$
-
匹配中文:^[\u0391-\uFFE5]+$
-
匹配电话号码:^((\d2,3)|(\d{3}-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(-\d{1,4})?$
-
匹配手机号码:^((\d2,3)|(\d{3}-))?13\d{9}$
-
匹配双字节字符(包括汉字在内):^\x00-\xff
-
匹配匹配首尾空格:(^\s)|(\s$)(像vbscript那样的trim函数)
-
匹配匹配HTML标记:<(.)>.</\1>|<(.*) />
-
匹配匹配空行:\n[\s| ]*\r
-
匹配提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\|/|.)+('|"| *|>)?
-
匹配提取信息中的邮件地址:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
-
匹配提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\|/|.)+('|"| *|>)?
-
匹配提取信息中的IP地址:(\d+).(\d+).(\d+).(\d+)
-
匹配提取信息中的中国手机号码:(86)013\d{9}
-
匹配提取信息中的中国固定电话号码:(\d3,4|\d{3,4}-|\s)?\d{8}
-
匹配提取信息中的中国电话号码(包括移动和固定电话):(\d3,4|\d{3,4}-|\s)?\d{7,14}
-
匹配提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
-
匹配提取信息中的浮点数(即小数):(-?\d*).?\d+
-
匹配提取信息中的任何数字 :(-?\d*)(.\d+)?
-
匹配IP:(\d+).(\d+).(\d+).(\d+)
-
匹配电话区号:/^0\d{2,3}$/
-
匹配腾讯QQ号:^[1-9][1-9][0-9]$
-
匹配帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
-
匹配中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
网友评论