要匹配的字符串或字符集
中文字符 [\u4e00-\u9fa5]
双字节字符 [^\x00-\xff]
全角字符 [^uFF00-\uFFFF]
空白行 \n\s*\r或\n[\s|]*\r 运用在删除文本空白行时
首尾空白字符 ^\s*|\s*$ 可以用来删除行首尾的空白字符 (包括空格、 制表符、 换行符等)
非常有用的表达式。如写trim函数:
function trim(targetStr:String):String
{
return targetStr.replace()
}
由26个英文字母组成的字符串 ^[A-Za-z]+$
由26个英文字母的大写组成的字符串 ^[A-Z]+$
由26个英文字母的小写组成的字符串 ^[a-z]+$
由数字、26个英文字母或下划线组成的字符串 ^\w+$
验证密码是否安全 /^(([A-Z]*[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}\?\\\/\’”]*)|.{0,5})$|\s/
货币数字 /^\d+(\.\d+)?$/
网络和 HTML代码方面常用的正则表达式
HTML标记 <(\S*?)[^>]*>.*?|<.*?/>(注意转义)
网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套
标记依旧无能为力
网络连接 (h|H)(r|R)(e|E)(f|F) *= *(‘|”)?(\w|\\|\/|\.)+(‘|”| *|>)? 用于提取网页中的链接
图片连接 (s|S)(r|R)(c|C) *= *(‘|”)?(\w|\\|\/|\.)+(‘|” *|>)?
E-mail地址 \w+([-+.]\w+)[email=*@\w+(%5b-.%5d\w+)*\.\
w+(%5b-.%5d\w+)*]*@\w+([-.]\w+)*\.\w+([-.]\w+)*[/email]
表单验证时很实用
URL [a-zA-z]+://[^\s]* 网上流传的版本功能很有限,上面这个基本可以满足需求
[url=http://([/w-%5d+/.)+%5bw-%5d+(/%5b/w-./?%25&=%5d*)]http://([\w-]+\.)+[w-]+(/[\w-./?%&=]*)[/url]?
这个专门用来解析 HTTP 地址,分了组。不过,如果自己有具体应用应当写得更加具体
IP地址 \d+\.\d+\.\d+ 提取IP地址时有用。如将 IP地址转换成对应数值
function IP2V(ip:String):uint{
var re:RegExp = /(\d+)(\d+)\.(\d+)\.(\d+)/g;
if (re.test(ip)){
var tmp:Array = ip.split(“.”);
return int(tmp[0])*Math.pow(255,3)+int(tmp[1]*Math.pow(255,2)+
int(tmp[2]*255+int[3]);
}else{
throw new Error(“Not a valid IP address!”);
}
}
表单验证
账号 ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
以字母开头,允许占用 5~16 字节,允许带有字母、数字和下划线
国内电话号码 \d{3}-\d{8}|\d{4}-\d{7} 例:0571-28881088
中国电话号码(包括移动和固定电话) (\(\d{3,4}\)|d{3,4}-|\s)?\d{7,14}
国际电话号码 /^((\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/
腾讯 QQ [1-9][0-9]{4,} 腾讯QQ号从10000 开始
中国邮政编码 [1-9]\d{5}(?!\d) 中国邮政编码为6 位数字
中国的身份证 \d{15}|\d{18} 中国的居民身份证号为15 位或18 位 身份证这个表达式过于简单,因为出生日期那几位都有限制的
匹配数字常用正则表达式
正整数 ^[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)