对常用的js正则表达式进行整理,归档!!!
什么是正则表达式?它有什么作用?
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
常用的js正则表达式
-
只能输入数字:
/^\d*$/
-
只能输入n位数字 :
/^\d{n}$/
-
至少输入n位数字 :
/^\d{n,}$/
-
只能输入有两位小数的正实数 :
/^\d+(.\d{2})?$/
-
只能输入有1~3位小数的正实数 :
/^[0-9]+(.[0-9]{1,3})?$/
-
只能输入由26个英文字母组成的字符串 :
/^[A-Za-z]+$/
-
只能输入由26个大写英文字母组成的字符串 :
/^[A-Z]+$/
-
只能输入由26个小写英文字母组成的字符串 :
/^[a-z]+$/
-
只能输入由数字和26个英文字母组成的字符串 :
/^[a-zA-Z0-9]+$/
-
只能输入汉字 :
/^[\u4e00-\u9fa5]*$/
-
验证Email地址:
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
-
验证InternetURL:
/^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%\s\S]*)?$/
-
验证电话号码:
/^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$/
-
验证身份证号:
/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
-
验证一年的12个月 :
/^(0?[1-9]|1[0-2])$/
-
验证一个月的31天 :
/^((0?[1-9])|((1|2)[0-9])|30|31)$/
-
匹配双字节字符(包括汉字在内) :
/[^\x00-\xff]/
-
匹配空行 :
/\n[\s| ]*\r/
-
匹配html标签:
/<(.*)>(.*)<\/(.*)>|<(.*)\/>/
-
匹配首尾空格:
/(^\s*)|(\s*$)/
-
QQ:
/[1-9][0-9]{4,}/
-
中国邮政编码:
/[1-9]\d{5}(?!\d)/
-
ip地址:
/\d+\.\d+\.\d+\.\d+/
-
正则匹配a标签:
/<a[^>]*>[^>]*<\/a>/
-
匹配除strong标签以外的其它标签:
(<[^strong][^>]*[^\/strong]>)
-
匹配img标签:
/<img[^>]*>/
-
判断是否以html标签开头的:
/^<([a-zA-Z1-6]+)(\s*[^>]*)?>/.test(content)
-
隐藏手机号中间4位:
numStr.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
-
格式化数字12345678990为, 1,234,567,890:
numStr.replace(/\B(?=(\d{3})+$)/g, ',')
正则表达式结合js对输入的限制
- javascript trim实现:
String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); }
-
计算字符串的长度(一个双字节字符长度计2,ASCII字符计1:
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
-
用正则表达式限制只能输入中文:
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
-
用正则表达式限制只能输入全角字符:
onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
-
用正则表达式限制只能输入数字:
onkeyup="value=value.replace(/[^\d]/g,'')
-
用正则表达式限制只能输入数字和英文:
onkeyup="value=value.replace(/[\W]/g,'')
-
去掉除img标签外的其它标签:
var after = str.replace(/<(?!img)[^>]*>/g,"");
- 判断是否以html标签开头的:
/^<([a-zA-Z1-6]+)(\s*[^>]*)?>/.test(str);