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. //校验文本是否为空
  132. function checknull(field,sval)
  133. {
  134. if (field.value =="")
  135. {
  136. alert("请填写" + sval + "!");
  137. field.focus();
  138. return false;
  139. }
  140. return true;
  141. }
  142. //屏蔽输入字符
  143. /***********************
  144. 调用方法:
  145. 在文本框中加上 οnkeypress="return checkChar()"
  146. *************************/
  147. function checkChar()
  148. {
  149. var keycode = event.keyCode;
  150. if(!(keycode>=48&&keycode <=57))
  151. {
  152. return false;
  153. }
  154. }
  155. /***************************************************************************************************************************
  156. 中国电话号码验证
  157. 匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 或者 (0511)4405222
  158. 正则表达式 "((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*"
  159. 中国邮政编码验证
  160. 匹配形式如:215421
  161. 正则表达式 "d{6}"
  162. 电子邮件验证
  163. 匹配形式如:justali@justdn.com
  164. 正则表达式 "w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
  165. 身份证验证
  166. 匹配形式如:15位或者18位身份证
  167. 正则表达式 "d{18}|d{15}"
  168. 常用数字验证
  169. 正则表达式
  170. "d{n}" n为规定长度
  171. "d{n,m}" nm的长度范围
  172. 非法字符验证
  173. 匹配非法字符如:< > & / ' |
  174. 正则表达式 [^ <>&/|'\]+
  175. 日期验证
  176. 匹配形式如:20030718,030718
  177. 范围:1900--2099
  178. 正则表达式((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}
  179. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  180. 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
  181. 匹配双字节字符(包括汉字在内):[^\x00-\xff]
  182. 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
  183. 匹配空白行的正则表达式:\n\s*\r
  184. 评注:可以用来删除空白行
  185. 匹配HTML标记的正则表达式: < (\S*?)[^>]*>.*?| < .*? />
  186. 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
  187. 匹配首尾空白字符的正则表达式:^\s*|\s*$
  188. 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
  189. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  190. 评注:表单验证时很实用
  191. 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
  192. 评注:网上流传的版本功能很有限,上面这个基本可以满足需求
  193. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  194. 评注:表单验证时很实用
  195. 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
  196. 评注:匹配形式如 0511-4405222 或 021-87888822
  197. 匹配腾讯QQ号:[1-9][0-9]{4,}
  198. 评注:腾讯QQ号从10000开始
  199. 匹配中国邮政编码:[1-9]\d{5}(?!\d)
  200. 评注:中国邮政编码为6位数字
  201. 匹配身份证:\d{15}|\d{18}
  202. 评注:中国的身份证为15位或18位
  203. 匹配ip地址:\d+\.\d+\.\d+\.\d+
  204. 评注:提取ip地址时有用
  205. 提取信息中的ip地址:
  206. (\d+)\.(\d+)\.(\d+)\.(\d+)
  207. 提取信息中的中国手机号码:
  208. (86)*0*13\d{9}
  209. 提取信息中的中国固定电话号码:
  210. (\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
  211. 提取信息中的中国电话号码(包括移动和固定电话):
  212. (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
  213. 提取信息中的中国邮政编码:
  214. [1-9]{1}(\d+){5}
  215. 提取信息中的中国身份证号码:
  216. \d{18}|\d{15}
  217. 提取信息中的整数:
  218. \d+
  219. 提取信息中的浮点数(即小数):
  220. (-?\d*)\.?\d+
  221. 提取信息中的任何数字 :
  222. (-?\d*)(\.\d+)?
  223. 提取信息中的中文字符串:
  224. [\u4e00-\u9fa5]*
  225. 提取信息中的双字节字符串 (汉字):
  226. [^\x00-\xff]*
  227. 提取信息中的英文字符串:
  228. \w*
  229. 提取信息中的网络链接:
  230. (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
  231. 提取信息中的邮件地址:
  232. \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  233. 提取信息中的图片链接:
  234. (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
  235. 匹配特定数字:
  236. ^[1-9]\d*$    //匹配正整数
  237. ^-[1-9]\d*$   //匹配负整数
  238. ^-?[1-9]\d*$   //匹配整数
  239. ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
  240. ^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
  241. ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
  242. ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
  243. ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
  244. ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
  245. ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
  246. 评注:处理大量数据时有用,具体应用时注意修正
  247. 匹配特定字符串:
  248. ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
  249. ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
  250. ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
  251. ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
  252. ^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
  253. 评注:最基本也是最常用的一些表达式
  254. ////////////////////前4行程序用于保护js代码不被下载
  255. // ////////////////////基本正则表达式///////////////////
  256. //非空验证 function NotNull (str) { return (str!=""); }
  257. //邮件地址验证 | column | column |
  258. |--------|--------|
  259. | | |
  260. function checkEmail (str) {
  261. //邮件地址正则表达式 isEmail1=/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
  262. //邮件地址正则表达式 isEmail2=/^.*@[^_]*$/;
  263. //验证邮件地址,返回结果 return (isEmail1.test(str)&&isEmail2.test(str));
  264. } //身份证验证 function checkIDCard (str) {
  265. //身份证正则表达式(15位)
  266. isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
  267. //身份证正则表达式(18位) isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
  268. //验证身份证,返回结果 return (isIDCard1.test(str)||isIDCard2.test(str)); }
  269. //IP验证 function checkIP (str)
  270. { //IP正则表达式 IP='(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
  271. IPdot=IP+'\\.'; isIPaddress=new RegExp('^'+IPdot+IPdot+IPdot+IP+'$');
  272. //验证IP,返回结果 return (isIPaddress.test(str)); }
  273. //主页(网址)验证 function checkHomepage (str) {
  274. //主页正则表达式 //isHomepage=/^\w+([\.\-]\w)*$/; isHomepage=/^\w+(\.\w+)+\.\w+$/;
  275. //验证主页,返回结果 return (isHomepage.test(str)); }
  276. //是否数字 function isNum (str) { //isNumber=/^([1-9]\d*(\.\d+)?)|(\d+(\.\d+))$/; isNumber=/^\d+(\.\d+)?$/;
  277. //验证并返回结果 return (isNumber.test(str)); }
  278. //是否整数 function isInt (str) { isInteger=/^\d+$/;
  279. //验证并返回结果 return (isInteger.test(str)); }
  280. //是否字母 function isChar (str) { isCharacter=/^[A-Za-z]+$/;
  281. //验证并返回结果 return (isCharacter.test(str));

转自Personal_YF的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值