正则表达式检验

前端之家收集整理的这篇文章主要介绍了正则表达式检验前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. /**
  2. * 格式化数字
  3. * @param value 数字数值(必须参数)
  4. * @param decimal 小数点 (非必须参数:若没有,则默认为2)
  5. * @returns 数字
  6. */
  7. function formatNumber(value,decimal) {
  8. if(isNaN(value))
  9. return value;
  10. var re = /^[0-9]+[0-9]*]*$/;
  11. if (!re.test(decimal)){
  12. decimal = 2;
  13. }
  14. var n = value.toFixed(decimal);
  15. var a = n.split(".");
  16. if(a[0].length > 3){
  17. var str = "";
  18. for(var i = a[0].length-1;i>=0;i=i-3){
  19. if(i >= 3)
  20. str = ","+ a[0].substring(i-2,i+1) +str;
  21. else
  22. str = a[0].substring(i-2,i+1) +str;
  23. }
  24. if(decimal > 0)
  25. return str+"."+a[1];
  26. else
  27. return str;
  28. }else{
  29. return n;
  30. }
  31. }
  32.  
  33. /**
  34. * 接收url传的参数
  35. * @param parName 参数名称(必须参数)
  36. * @returns 接收到参数
  37. */
  38. function getParameter(parName){
  39. var str = parName.toLowerCase() + "=";
  40. var gvalue = "";
  41. var HREF = location.href;
  42. var upperHREF = location.href.toLowerCase();
  43. if(upperHREF.indexOf(str)>0){
  44. gvalue = HREF.substring(upperHREF.indexOf(str) + str.length,upperHREF.length);
  45. if(gvalue.indexOf('&')>0) gvalue = gvalue.substring(0,gvalue.indexOf('&'));
  46. if(gvalue.indexOf("#")>0) gvalue = gvalue.split("#")[0];
  47. }
  48. return gvalue;
  49. }
  50.  
  51. /**
  52. * 去掉左右空格
  53. * @param str 字符(必须参数)
  54. * @returns
  55. */
  56. function trim(str){
  57. return str.replace(/(^\s*)|(\s*$)/g,"");
  58. }
  59.  
  60. /**
  61. *
  62. * @param value 日期(必须参数)
  63. * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd)
  64. * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd; ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM; ⑥: yyyy.MM
  65. * @returns {String}
  66. */
  67. function formatDate(value,formatter) {
  68. if (value == null || value == '') {
  69. return '';
  70. }
  71. if(formatter == null || formatter == "undefined" || formatter == ""){
  72. formatter = "yyyy-MM-dd";
  73. }
  74. var year = value.getFullYear();
  75. var month = value.getMonth()+1;
  76. var day = value.getDate();
  77. if(month < 10)
  78. month = "0"+month;
  79. if(day < 10)
  80. day = "0" + day;
  81. if(formatter == "yyyy-MM-dd"){
  82. return year + "-" + month + "-" + day;
  83. }else if(formatter == "yyyy/MM/dd"){
  84. return year + "/" + month + "/" + day;
  85. }else if(formatter == "yyyy.MM.dd"){
  86. return year + "." + month + "." + day;
  87. }else if(formatter == "yyyy-MM"){
  88. return year + "-" + month;
  89. }else if(formatter == "yyyy/MM"){
  90. return year + "/" + month;
  91. }else if(formatter == "yyyy.MM"){
  92. return year + "." + month;
  93. }else
  94. return "";
  95. }
  96.  
  97. /**
  98. * 格式化日期时间
  99. * @param value 日期时间(必须参数)
  100. * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd HH:mm:ss)
  101. * 目前支持的格式有:①: yyyy-MM-dd HH:mm:ss; ②: yyyy/MM/dd HH:mm:ss; ③:yyyy.MM.dd HH:mm:ss; ④:yyyy-MM-dd hh:mm:ss; ⑤: yyyy/MM/dd hh:mm:ss; ⑥: yyyy.MM.dd hh:mm:ss
  102. * @returns
  103. */
  104. function formatDateTime(value,formatter) {
  105. alert(formatter);
  106. if (value == null || value == '') {
  107. return '';
  108. }
  109. if(formatter == null || formatter == "undefined" || formatter == ""){
  110. formatter = "yyyy-MM-dd HH:mm:ss";
  111. }
  112. var year = value.getFullYear();
  113. var month = value.getMonth()+1;
  114. var day = value.getDate();
  115. var hours = value.getHours();
  116. var minutes = value.getMinutes();
  117. var seconds = value.getSeconds();
  118. if((formatter == "yyyy-MM-dd hh:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss") && hours >=13 && hours <=23){
  119. hours = hours-12;
  120. }
  121. if(month < 10)
  122. month = "0"+month;
  123. if(day < 10)
  124. day = "0" + day;
  125. if(hours < 10)
  126. hours = "0"+hours;
  127. if(minutes < 10)
  128. minutes = "0" + minutes;
  129. if(seconds < 10)
  130. seconds = "0"+seconds;
  131. if(formatter == "yyyy-MM-dd HH:mm:ss" || formatter == "yyyy-MM-dd hh:mm:ss"){
  132. return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
  133. }else if(formatter == "yyyy/MM/dd HH:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss"){
  134. return year + "/" + month + "/" + day + " " + hours + ":" + minutes + ":" + seconds;
  135. }else if(formatter == "yyyy.MM.dd HH:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss"){
  136. return year + "." + month + "." + day + " " + hours + ":" + minutes + ":" + seconds;
  137. }else
  138. return "";
  139. }
  140.  
  141. /**
  142. * 将字符串转成日期
  143. * @param value 日期时间字符串(必须参数)
  144. * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd)
  145. * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd; ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM; ⑥: yyyy.MM
  146. * @returns
  147. */
  148. function parseDate(value,formatter){
  149. if(value == null)
  150. return "";
  151. if(formatter == null || formatter == "undefined" || formatter == ""){
  152. formatter = "yyyy-MM-dd";
  153. }
  154. if(formatter == "yyyy-MM-dd"){
  155. var a = value.split("-");
  156. return new Date(a[0],parseInt(a[1],10)-1,a[2]);
  157. }else if(formatter == "yyyy/MM/dd"){
  158. var a = value.split("/");
  159. return new Date(a[0],a[2]);
  160. }else if(formatter == "yyyy.MM.dd"){
  161. var a = value.split(".");
  162. return new Date(a[0],a[2]);
  163. }else if(formatter == "yyyy-MM"){
  164. var a = value.split("-");
  165. return new Date(a[0],1);
  166. }else if(formatter == "yyyy/MM"){
  167. var a = value.split("/");
  168. return new Date(a[0],1);
  169. }else if(formatter == "yyyy.MM"){
  170. var a = value.split(".");
  171. return new Date(a[0],1);
  172. }else
  173. return "";
  174. }
  175.  
  176. function formatFileSize(value){
  177. return (value/1024).toFixed(2)+"KB";
  178. }
  179.  
  180. /**
  181. * ajax重装
  182. * @param url (必须参数)
  183. * @param data 传递参数(必须参数,没有请填写null)
  184. * @param success 成功操作(非必须参数)
  185. * @param async是否异步(true为异步,false为同步,默认为同步)
  186. */
  187. function ajax(url,data,success,async){
  188. if(url == null || url == "" || url == "undefined")
  189. return false;
  190. if(success == null || success == "undefined")
  191. success = function(data,textStatus){};
  192. if(async != false && async != true)
  193. async = false;
  194. $.ajax({
  195. url:url,data:data,type:"post",dataType:"json",async: false,success: function(result,textStatus){
  196. success(result,textStatus);
  197. }
  198. });
  199. }
  200.  
  201. /**
  202. * 检测客户端浏览器是否安装flash控件
  203. */
  204. function flashChecker(){
  205. var hasFlash = false;
  206. if(document.all){
  207. try{
  208. hasFlash = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  209. }catch(e){
  210. hasFlash = false;
  211. }
  212. }else{
  213. if(navigator.plugins && navigator.plugins.length > 0){
  214. var swf = navigator.plugins["Shockwave Flash"];
  215. if(swf){
  216. hasFlash = true;
  217. }
  218. }
  219. }
  220. return hasFlash;
  221. }
  222.  
  223. /**
  224. * 判断表单时候被改变,必须和setDefaultFormData(formid)方法联用
  225. * @param formTarget (必须参数) 表单节点
  226. */
  227. function isFormChanged(formTarget){
  228. var isChanged = false;
  229. formTarget.find(":input").each(function(){
  230. var type = this.type;
  231. if(type == "select-one"){
  232. for (var j = 0; j < this.options.length; j++){
  233. if (this.options[j].selected != this.options[j].defaultSelected){
  234. isChanged = true;
  235. return false;
  236. }
  237. }
  238. }else if(type == "checkBox" || type == "radio"){
  239. if(this.checked != this.defaultChecked){
  240. isChanged = true;
  241. return false;
  242. }
  243. }else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
  244. if(this.value != this.defaultValue){
  245. isChanged = true;
  246. return false;
  247. }
  248. }else{}
  249.  
  250. });
  251. return isChanged;
  252. }
  253.  
  254. /**
  255. * 为表单设置默认的值(默认将当前表单中各元素的值设为默认值,后常和isFormChanged(formid)联用)
  256. * @param formTarget (必须参数) 表单节点
  257. */
  258. function setDefaultFormData(formTarget){
  259. formTarget.find(":input").each(function(){
  260. var type = this.type;
  261. if(type == "select-one"){
  262. for (var j = 0; j < this.options.length; j++){
  263. this.options[j].defaultSelected = this.options[j].selected;
  264. }
  265. }else if(type == "checkBox" || type == "radio"){
  266. this.defaultChecked = this.checked;
  267. }else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
  268. this.defaultValue = this.value;
  269. }
  270. });
  271. }
  272.  
  273. /**
  274. * 将字符串转成json
  275. * @param str 字符串
  276. */
  277. function stringToJson(str){
  278. return eval('(' + str + ')');
  279. }
  280.  
  281. /**
  282. * 将json转成字符串
  283. * @param json 对象
  284. */
  285. function jsonToString(json){
  286. return JSON.stringify(json);
  287. }
  288.  
  289. //换行和换空格
  290. function to_text(str){
  291. if(str == null)
  292. return null;
  293. else
  294. return str.split("\r\n").join('<br>').split(" ").join('');
  295. }
  296. //小写数字转大写金额
  297. function atoc(numberValue){
  298. var numberValue=new String(Math.round(numberValue*100)); // 数字金额
  299. var chineseValue=""; // 转换后的汉字金额
  300. var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
  301. var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
  302. var len=numberValue.length; // numberValue 的字符串长度
  303. var Ch1; // 数字的汉语读法
  304. var Ch2; // 数字位的汉字读法
  305. var nZero=0; // 用来计算连续的零值的个数
  306. var String3; // 指定位置的数值
  307. if(len>15){
  308. alert("超出计算范围");
  309. return "";
  310. }
  311. if (numberValue==0){
  312. chineseValue = "零元整";
  313. return chineseValue;
  314. }
  315. String2 = String2.substr(String2.length-len,len); // 取出对应位数的STRING2的值
  316. for(var i=0; i<len; i++){
  317. String3 = parseInt(numberValue.substr(i,1),10); // 取出需转换的某一位的值
  318. if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
  319. if ( String3 == 0 ){
  320. Ch1 = "";
  321. Ch2 = "";
  322. nZero = nZero + 1;
  323. }
  324. else if ( String3 != 0 && nZero != 0 ){
  325. Ch1 = "零" + String1.substr(String3,1);
  326. Ch2 = String2.substr(i,1);
  327. nZero = 0;
  328. }
  329. else{
  330. Ch1 = String1.substr(String3,1);
  331. nZero = 0;
  332. }
  333. }
  334. else{ // 该位是万亿,亿,万,元位等关键位
  335. if( String3 != 0 && nZero != 0 ){
  336. Ch1 = "零" + String1.substr(String3,1);
  337. nZero = 0;
  338. }
  339. else if ( String3 != 0 && nZero == 0 ){
  340. Ch1 = String1.substr(String3,1);
  341. nZero = 0;
  342. }
  343. else if( String3 == 0 && nZero >= 3 ){
  344. Ch1 = "";
  345. Ch2 = "";
  346. nZero = nZero + 1;
  347. }
  348. else{
  349. Ch1 = "";
  350. Ch2 = String2.substr(i,1);
  351. nZero = nZero + 1;
  352. }
  353. if( i == (len - 11) || i == (len - 3)){ // 如果该位是亿位或元位,则必须写上
  354. Ch2 = String2.substr(i,1);
  355. }
  356. }
  357. chineseValue = chineseValue + Ch1 + Ch2;
  358. }
  359. if ( String3 == 0 ){ // 最后一位(分)为0时,加上“整”
  360. chineseValue = chineseValue + "整";
  361. }
  362. return chineseValue;
  363. }
  364.  
  365.  
  366. /**字符串数字相加
  367. *
  368. * @param idstr id的字符串 用,隔开
  369. */
  370. function numAdd(idstr){
  371. var ids = idstr.split(",");
  372. var total = 0;
  373. for(var i = 0;i<ids.length;i++){
  374. total += Number($("#"+ids[i]).val());
  375. }
  376. return total;
  377. }
  378.  
  379. //验证邮编 onchange="checkYb(this.id)" var reg = /^0?1[3|4|5|8][0-9]\d{8}$/; checkGdDh
  380. function checkYb(object){
  381. var yb = document.getElementById(object.id).value;
  382. var pattern =/^[0-9]{6}$/;
  383. if(yb!="")
  384. {
  385. if(!pattern.exec(yb))
  386. {
  387. $.messager.alert('警告','请输入正确的邮政编码!');
  388. object.value = "";
  389. }
  390. }
  391. }
  392.  
  393. //验证以13,14,15,18开头的 /^0?1[3|4|5|8][0-9]\d{8}$/; 下面验证以1开头的11位数字
  394. function checkMbPhone(object){
  395. var sjhm = document.getElementById(object.id).value;
  396. var pattern =/^0?1[0-9]\d{9}$/;
  397. if(sjhm!="")
  398. {
  399. if(!pattern.exec(sjhm))
  400. {
  401. $.messager.alert('警告','请输入正确的手机号码!');
  402. object.value = "";
  403. }
  404. }
  405. }
  406.  
  407. //电话号码验证 区号(3到4位)-电话号码(7到8位)(分机号(3位)或者以上)
  408. function checkGdDh(object){
  409. var GdDh = document.getElementById(object.id).value;
  410. var pattern = /^((0\d{2,3})-)(\d{7,8})(\((\d{3,})\))?$/;
  411. if(GdDh!="")
  412. {
  413. if(!pattern.exec(GdDh))
  414. {
  415. $.messager.alert('警告','请输入正确的电话号码!');
  416. object.value = "";
  417. }
  418. }
  419. }


  1. /**
  2. * 判断手机号码或固定电话号码(带区号或不带区号)是否符合要求
  3. * @param value 号码(必须参数)
  4. */
  5. function isPhone(value){
  6. try{
  7. var regBox = {
  8. regEmail : /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,//邮箱
  9. regMobile : /^1[3|4|5|7|8][0-9]{9}$/,//手机,以1开头,第二位是3、4、5、7、8,后面是0-9的9位数字,合为11位手机号码正则验证
  10. regTel : /^0[\d]{2,3}-[\d]{7,8}$/,//固定电话,带区号带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,再加“-”,后面是7或8位的数字号码
  11. regTel2 : /^0[\d]{9,11}$/,//固定电话,带区号不带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,后面再跟7或8位的数字号码
  12. regNoTel : /^[\d]{7,8}$/ //固定电话,不带区号的固话,7或8位的数字号码
  13. };
  14. var mobile = regBox.regMobile.test(value);
  15. var tel = regBox.regTel.test(value);
  16. var tel2 = regBox.regTel2.test(value);
  17. var notel = regBox.regNoTel.test(value);
  18. if(mobile || tel || tel2 || notel)
  19. return true;
  20. else{
  21. alert("联系号码填写格式不正确,请重新填写!");
  22. return false;
  23. }
  24. }catch(e){
  25. }
  26. }

猜你在找的正则表达式相关文章