js正则表达式大全


   
   
  1. 整数正则表达式,中文正则表达式,汉字正则表达式,手机正则表达式
  2. js过滤中文 var str="MIANYANG 绵阳";
  3. alert(str.replace(/[^\u4E00-\u9FA5]/g, ''));
  4. intege:"^-?[1-9]\\d*$", //整数
  5. intege1:"^[1-9]\\d*$", //正整数
  6. intege2:"^-[1-9]\\d*$", //负整数
  7. num:"^([+-]?)\\d*\\.?\\d+$", //数字
  8. num1:"^[1-9]\\d*|0$", //正数(正整数 + 0)
  9. num2:"^-[1-9]\\d*|0$", //负数(负整数 + 0)
  10. decmal:"^([+-]?)\\d*\\.\\d+$", //浮点数
  11. decmal1:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",   //正浮点数
  12. decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",  //负浮点数
  13. decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",  //浮点数
  14. decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",   //非负浮点数(正浮点数 + 0)
  15. decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",  //非正浮点数(负浮点数 + 0)
  16. email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
  17. color:"^[a-fA-F0-9]{6}$", //颜色
  18. url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", //url
  19. chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$", //仅中文
  20. ascii:"^[\\x00-\\xFF]+$", //仅ACSII字符
  21. zipcode:"^\\d{6}$", //邮编
  22. mobile:"^(13|15)[0-9]{9}$", //手机
  23. ip4:"^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", //ip地址
  24. notempty:"^\\S+$", //非空
  25. picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", //图片
  26. rar:"(.*)\\.(rar|zip|7zip|tgz)$", //压缩文件
  27. date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", //日期
  28. qq:"^[1-9]*[1-9][0-9]*$", //QQ号码
  29. tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", //电话号码的函数(包括验证国内区号,国际区号,分机号)
  30. username:"^\\w+$", //用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
  31. letter:"^[A-Za-z]+$", //字母
  32. letter_u:"^[A-Z]+$", //大写字母
  33. letter_l:"^[a-z]+$", //小写字母
  34. idcard:"^[1-9]([0-9]{14}|[0-9]{17})$" //身份证
  35. 以下函数调用方式:
  36. function check()
  37. {
  38. var bb = document.getElementById("txt_id").value;//txt_id为文本框的ID
  39. alert(ismobile(bb));//ismobile 代表以下任何一个函数名称
  40. }
  41. HTML代码:
  42. <input type="text" name="textfield" id="txt_id" />
  43. <input type="submit" name="Submit" value="提交" onclick="check()" />
  44. **************************/
  45. // 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
  46. function isalphanumber(str)
  47. {
  48. var result=str.match(/^[a-zA-Z0-9]+$/);
  49. if(result==null) return false;
  50. return true;
  51. }
  52. // 判断输入是否是一个数字--(数字包含小数)--
  53. function isnumber(str)
  54. {
  55. return !isNaN(str);
  56. }
  57. // 判断输入是否是一个整数
  58. function isint(str)
  59. {
  60. var result=str.match(/^(-|\+)?\d+$/);
  61. if(result==null) return false;
  62. return true;
  63. }
  64. // 判断输入是否是有效的长日期格式 - "YYYY-MM-DD HH:MM:SS" || "YYYY/MM/DD HH:MM:SS"
  65. function isdatetime(str)
  66. {
  67. var result=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
  68. if(result==null) return false;
  69. var d= new Date(result[1], result[3]-1, result[4], result[5], result[6], result[7]);
  70. return (d.getFullYear()==result[1]&&(d.getMonth()+1)==result[3]&&d.getDate()==result[4]&&d.getHours()==result[5]&&d.getMinutes()==result[6]&&d.getSeconds()==result[7]);
  71. }
  72. // 检查是否为 YYYY-MM-DD || YYYY/MM/DD 的日期格式
  73. function isdate(str){
  74. var result=str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
  75. if(result==null) return false;
  76. var d=new Date(result[1], result[3]-1, result[4]);
  77. return (d.getFullYear()==result[1] && d.getMonth()+1==result[3] && d.getDate()==result[4]);
  78. }
  79. // 判断输入是否是有效的电子邮件
  80. function isemail(str)
  81. {
  82. var result=str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
  83. if(result==null) return false;
  84. return true;
  85. }
  86. // 去除字符串的首尾的空格
  87. function trim(str){
  88. return str.replace(/(^\s*)|(\s*$)/g, "");
  89. }
  90. // 返回字符串的实际长度, 一个汉字算2个长度
  91. function strlen(str){
  92. return str.replace(/[^\x00-\xff]/g, "**").length;
  93. }
  94. //匹配中国邮政编码(6位)
  95. function ispostcode(str)
  96. {
  97. var result=str.match(/[1-9]\d{5}(?!\d)/);
  98. if(result==null) return false;
  99. return true;
  100. }
  101. //匹配国内电话号码(0511-4405222 或 021-87888822)
  102. function istell(str)
  103. {
  104. var result=str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
  105. if(result==null) return false;
  106. return true;
  107. }
  108. //校验是否为(0-10000)的整数
  109. function isint1(str)
  110. {
  111. var result=str.match(/^[0-9]$|^([1-9])([0-9]){0,3}$|^10000$/);
  112. if(result==null) return false;
  113. return true;
  114. }
  115. //匹配腾讯QQ号
  116. function isqq(str)
  117. {
  118. var result=str.match(/[1-9][0-9]{4,}/);
  119. if(result==null) return false;
  120. return true;
  121. }
  122. //匹配身份证(15位或18位)
  123. function isidcard(str)
  124. {
  125. var result=str.match(/\d{15}|\d{18}/);
  126. if(result==null) return false;
  127. return true;
  128. }
  129. //
  130. //校验文本是否为空
  131. function checknull(field,sval)
  132. {
  133. if (field.value =="")
  134. {
  135. alert("请填写" + sval + "!");
  136. field.focus();
  137. return false;
  138. }
  139. return true;
  140. }
  141. //屏蔽输入字符
  142. /***********************
  143. 调用方法:
  144. 在文本框中加上 οnkeypress="return checkChar()"
  145. *************************/
  146. function checkChar()
  147. {
  148. var keycode = event.keyCode;
  149. if(!(keycode>=48&&keycode <=57))
  150. {
  151. return false;
  152. }
  153. }
  154. /***************************************************************************************************************************
  155. 中国电话号码验证
  156. 匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
  157. 正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"
  158. 中国邮政编码验证
  159. 匹配形式如:215421
  160. 正则表达式 "d{6}"
  161. 电子邮件验证
  162. 匹配形式如:justali@justdn.com
  163. 正则表达式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
  164. 身份证验证
  165. 匹配形式如:15位或者18位身份证
  166. 正则表达式 "d{18}|d{15}"
  167. 常用数字验证
  168. 正则表达式
  169. "d{n}" n为规定长度
  170. "d{n,m}" nm的长度范围
  171. 非法字符验证
  172. 匹配非法字符如:< > & / ' |
  173. 正则表达式 [^ <>&/|'\]+
  174. 日期验证
  175. 匹配形式如:20030718,030718
  176. 范围:1900--2099
  177. 正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}
  178. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  179. 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
  180. 匹配双字节字符(包括汉字在内):[^\x00-\xff]
  181. 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
  182. 匹配空白行的正则表达式:\n\s*\r
  183. 评注:可以用来删除空白行
  184. 匹配HTML标记的正则表达式: < (\S*?)[^>]*>.*?| < .*? />
  185. 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
  186. 匹配首尾空白字符的正则表达式:^\s*|\s*$
  187. 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
  188. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  189. 评注:表单验证时很实用
  190. 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
  191. 评注:网上流传的版本功能很有限,上面这个基本可以满足需求
  192. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  193. 评注:表单验证时很实用
  194. 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
  195. 评注:匹配形式如 0511-4405222 或 021-87888822
  196. 匹配腾讯QQ号:[1-9][0-9]{4,}
  197. 评注:腾讯QQ号从10000开始
  198. 匹配中国邮政编码:[1-9]\d{5}(?!\d)
  199. 评注:中国邮政编码为6位数字
  200. 匹配身份证:\d{15}|\d{18}
  201. 评注:中国的身份证为15位或18位
  202. 匹配ip地址:\d+\.\d+\.\d+\.\d+
  203. 评注:提取ip地址时有用
  204. 提取信息中的ip地址:
  205. (\d+)\.(\d+)\.(\d+)\.(\d+)
  206. 提取信息中的中国手机号码:
  207. (86)*0*13\d{9}
  208. 提取信息中的中国固定电话号码:
  209. (\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
  210. 提取信息中的中国电话号码(包括移动和固定电话):
  211. (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
  212. 提取信息中的中国邮政编码:
  213. [1-9]{1}(\d+){5}
  214. 提取信息中的中国身份证号码:
  215. \d{18}|\d{15}
  216. 提取信息中的整数:
  217. \d+
  218. 提取信息中的浮点数(即小数):
  219. (-?\d*)\.?\d+
  220. 提取信息中的任何数字 :
  221. (-?\d*)(\.\d+)?
  222. 提取信息中的中文字符串:
  223. [\u4e00-\u9fa5]*
  224. 提取信息中的双字节字符串 (汉字):
  225. [^\x00-\xff]*
  226. 提取信息中的英文字符串:
  227. \w*
  228. 提取信息中的网络链接:
  229. (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
  230. 提取信息中的邮件地址:
  231. \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  232. 提取信息中的图片链接:
  233. (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
  234. 匹配特定数字:
  235. ^[1-9]\d*$    //匹配正整数
  236. ^-[1-9]\d*$   //匹配负整数
  237. ^-?[1-9]\d*$   //匹配整数
  238. ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
  239. ^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
  240. ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
  241. ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
  242. ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
  243. ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
  244. ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
  245. 评注:处理大量数据时有用,具体应用时注意修正
  246. 匹配特定字符串:
  247. ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
  248. ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
  249. ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
  250. ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
  251. ^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
  252. 评注:最基本也是最常用的一些表达式
  253. 前4行程序用于保护js代码不被下载
  254. // 基本正则表达式///
  255. //非空验证 function NotNull (str) { return (str!=""); }
  256. //邮件地址验证 | column | column |
  257. |--------|--------|
  258. | | |
  259. function checkEmail (str) {
  260. //邮件地址正则表达式 isEmail1=/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
  261. //邮件地址正则表达式 isEmail2=/^.*@[^_]*$/;
  262. //验证邮件地址,返回结果 return (isEmail1.test(str)&&isEmail2.test(str));
  263. } //身份证验证 function checkIDCard (str) {
  264. //身份证正则表达式(15位)
  265. isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
  266. //身份证正则表达式(18位) isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
  267. //验证身份证,返回结果 return (isIDCard1.test(str)||isIDCard2.test(str)); }
  268. //IP验证 function checkIP (str)
  269. { //IP正则表达式 IP='(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
  270. IPdot=IP+'\\.'; isIPaddress=new RegExp('^'+IPdot+IPdot+IPdot+IP+'$');
  271. //验证IP,返回结果 return (isIPaddress.test(str)); }
  272. //主页(网址)验证 function checkHomepage (str) {
  273. //主页正则表达式 //isHomepage=/^\w+([\.\-]\w)*$/; isHomepage=/^\w+(\.\w+)+\.\w+$/;
  274. //验证主页,返回结果 return (isHomepage.test(str)); }
  275. //是否数字 function isNum (str) { //isNumber=/^([1-9]\d*(\.\d+)?)|(\d+(\.\d+))$/; isNumber=/^\d+(\.\d+)?$/;
  276. //验证并返回结果 return (isNumber.test(str)); }
  277. //是否整数 function isInt (str) { isInteger=/^\d+$/;
  278. //验证并返回结果 return (isInteger.test(str)); }
  279. //是否字母 function isChar (str) { isCharacter=/^[A-Za-z]+$/;
  280. //验证并返回结果 return (isCharacter.test(str));

转自Personal_YF的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值