常用的JavaScript正则匹配规则代码收藏,很实用
收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码、Email、中文字符、身份证号、邮编、QQ号、过滤空白行、匹配特定数字等。觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出,看了这个文档,觉得心里踏实很多,用到正则匹配的时候,看下这个,相信为让你省不少时间。注:本正则不仅限于在JS中使用,其它语言也可以借鉴。 匹配特定数字: ^[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) 匹配中文字符: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff],可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行:\n\s*\r,比如用来删除空白行 匹配HTML标记:<(\S*?)[^>]*>.*?</\1>|<.*? /> 匹配首尾空白字符:^\s*|\s*$,可用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),个人觉得很有用 匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL:[a-zA-z]+://[^\s]* 匹配用户名是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配电话号码:\d{3}-\d{8}|\d{4}-\d{7},匹配形式如 0511-4405222 或 021-87888822 匹配QQ号:[1-9][0-9]{4,} 匹配邮政编码:[1-9]\d{5}(?!\d),也就是匹配6位数字 匹配身份证:\d{15}|\d{18},身份证为15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+,提取ip时有用。 匹配特定字符串: ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 验证1900-2099年日期 /^((19|20)[0-9]{2})-(([1-9]{1})|10|11|12)$/ /^\d{4}\-([1-9]|1[012])$/ 验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为: “01”-“09”和“1”“12” 验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 正确格式为:“01”“09”和“1”“31”。 只能输入数字:“^[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-z]+$” 只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” 只能输入由数字、26个英文字母或者下划线组成的字符串:“^\w+$” 验证用户密码:“^[a-zA-Z]\w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:“[^%&',;=?$\x22]+” 只能输入汉字:“^[\u4e00-\u9fa5],{0,}$” 验证Email地址:“^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$” 验证InternetURL:“^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$” 验证电话号码:“^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$” 匹配格式为2005-1-1的日期 格式不能为2005-01-01,来看一个例子:
<script language=javascript> var str="2005-04-03"; re=/\d{4}(-(?!0))\d{1,2}(-(?!0))\d{1,2}/ if(!re.test(str)) { alert("格式错误") } else { alert("正确") } </script>
php资料