对常用的js正则表达式进行整理,归档!!!
什么是正则表达式?它有什么作用?
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
常用的js正则表达式
1. 只能输入数字: /^[0-9]*$/
2. 只能输入n位数字 : /^\d{n}$/
3. 至少输入n位数字 : /^\d{n,}$/
4. 只能输入有两位小数的正实数 : /^[0-9]+(.[0-9]{2})?$/
5. 只能输入有1~3位小数的正实数 : /^[0-9]+(.[0-9]{1,3})?$/
6. 只能输入由26个英文字母组成的字符串 : /^[A-Za-z]+$/
7. 只能输入由26个大写英文字母组成的字符串 : /^[A-Z]+$/
8. 只能输入由26个小写英文字母组成的字符串 : /^[a-z]+$/
9. 只能输入由数字和26个英文字母组成的字符串 : /^\w+$/
10. 验证用户密码 : /^[a-zA-Z]\w{5,17}$/
11. 只能输入汉字 : /^[\u4e00-\u9fa5]{0,}$/
12. 验证Email地址: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
13. 验证InternetURL:
/^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$/
14. 验证电话号码 : /^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$/
15. 验证身份证号(15位或18位数字 : /^\d{15}|\d{18}$/
16. 验证一年的12个月 : /^(0?[1-9]|1[0-2])$/
17. 验证一个月的31天 : /^((0?[1-9])|((1|2)[0-9])|30|31)$/
18. 匹配双字节字符(包括汉字在内) : /[^\x00-\xff]/
19. 匹配空行 : /\n[\s| ]*\r/
20. 匹配html标签: /<(.*)>(.*)<\/(.*)>|<(.*)\/>/
21. 匹配首尾空格: /(^\s*)|(\s*$)/
22. QQ: /[1-9][0-9]{4,}/
23. 中国邮政编码: /[1-9]\d{5}(?!\d)/
24. ip地址: /\d+\.\d+\.\d+\.\d+/
25. 正则匹配a标签: /<a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)<\/a>/
26. 匹配除strong标签以外的其它标签: (<[^strong][^>]*[^\/strong]>)
27. 匹配img标签: /<img.*?(?:>|\/>)/gi
28. 判断是否以html标签开头的: /^<([a-zA-Z1-6]+)(\s*[^>]*)?>/.test(content)
正则表达式结合js对输入的限制
1. javascript trim实现:
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
2. 计算字符串的长度(一个双字节字符长度计2,ASCII字符计1:
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
3. 用正则表达式限制只能输入中文:
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
4. 用正则表达式限制只能输入全角字符:
onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
5. 用正则表达式限制只能输入数字:
onkeyup="value=value.replace(/[^\d]/g,'')
6. 用正则表达式限制只能输入数字和英文:
onkeyup="value=value.replace(/[\W]/g,'')
7. 去掉除img标签外的其它标签:
var after = str.replace(/<(?!img)[^>]*>/g,"");
8. 判断是否以html标签开头的:
/^<([a-zA-Z1-6]+)(\s*[^>]*)?>/.test(str);
参考链接
1. 正则表达式基本语法: (http://www.runoob.com/regexp/regexp-syntax.html)
网友评论