validate.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. 
  2. var _IDCARD_MSG='';
  3. //只能录入身份证号码
  4. function FWidcard(obj){
  5. var str = obj.value;
  6. if(str==''){return;}
  7. if(!FWidcardCheck(str)){
  8. FWvalidateTip(obj,_IDCARD_MSG);
  9. }else{
  10. if(str.length==15){
  11. obj.value = FWidcar15to18(str);
  12. }
  13. }
  14. }
  15. /**
  16. * 只能录入中文
  17. * @param obj dom对象
  18. * @returns {Boolean} 校验成功与否
  19. */
  20. function FWchiness(obj){
  21. var str = obj.value;
  22. var sWord ="";
  23. var strn ="";
  24. var iLen = str.length;
  25. if(str==''){return;}
  26. if(/[^\u4E00-\u9FA5]/gi.test(str)){
  27. FWvalidateTip(obj,'此输入框只能录入中文!');
  28. return false;
  29. }
  30. for(i=0;i<iLen;i++){
  31. sWord = str.substr(i,1);
  32. if(!(/[^\u4E00-\u9FA5]/gi.test(sWord))){
  33. strn=strn+''+sWord;
  34. }
  35. }
  36. obj.value = strn;
  37. return true;
  38. }
  39. //只能录入数值
  40. function FWnumber(obj){
  41. var str;
  42. var iValue=0;
  43. var sWord='';
  44. var reg;
  45. str = obj.value;
  46. if(str==''||str== null){return;}
  47. sWord = str.substr(0,1);
  48. if(sWord!='-'){
  49. reg= /^(([1-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
  50. }
  51. else{
  52. //负浮点数
  53. reg= /^(-(([1-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
  54. }
  55. if(!reg.test(str)){
  56. FWvalidateTip(obj,'此输入框只能录入数值!');
  57. return false;
  58. }
  59. obj.value =parseFloat(str,10);
  60. return true;
  61. }
  62. //校验年月是否合法
  63. function FWyearmonth(obj){
  64. var reg;
  65. var str = obj.value;
  66. if(str==''){return true;}
  67. if(str.length != 6){
  68. FWvalidateTip(obj,'此输入框只能录入年月!');
  69. obj.value='';
  70. return false;
  71. }
  72. reg= /^([1-2][0-9]{3}[0-1][0-9])$/;
  73. if(!reg.test(str)){
  74. FWvalidateTip(obj,'此输入框只能录入年月!');
  75. obj.value='';
  76. return false;
  77. }
  78. var mm=str.substring(4,6);
  79. if(mm<"01"||mm>"12"){
  80. FWvalidateTip(obj,'此输入框只能录入年月!');
  81. obj.value='';
  82. return false;
  83. }
  84. return true;
  85. }
  86. //校验日期是否合法
  87. function FWdatebox(obj,fwformat){
  88. var reg;
  89. var arry;
  90. var sYear,sMonth,sDay;
  91. var str = obj.value;
  92. if(str==''){return true;}
  93. if(fwformat==''){fwformat='yyyy-mm-dd';}
  94. if(fwformat=='yyyy-mm-dd'||fwformat=='YYYY-MM-DD'){
  95. arry = str.split('-');
  96. if(arry.length==3){
  97. sYear =arry[0];
  98. sMonth =arry[1];
  99. sDay =arry[2];
  100. if(sDay.length==1){sDay='0'+sDay;}
  101. if(sMonth.length==1){sMonth='0'+sMonth;}
  102. str=sYear+'-'+sMonth+'-'+sDay;
  103. }
  104. }
  105. if(fwformat=='yyyy/mm/dd'||fwformat=='YYYY/MM/DD'){
  106. arry = str.split('/');
  107. if(arry.length==3){
  108. sYear =arry[0];
  109. sMonth =arry[1];
  110. sDay =arry[2];
  111. if(sDay.length==1){sDay='0'+sDay;}
  112. if(sMonth.length==1){sMonth='0'+sMonth;}
  113. str=sYear+'/'+sMonth+'/'+sDay;
  114. }
  115. }
  116. if(fwformat=='dd-mm-yyyy'||fwformat=='DD-MM-YYYY'){
  117. arry = str.split('-');
  118. if(arry.length==3){
  119. sYear =arry[2];
  120. sMonth =arry[1];
  121. sDay =arry[0];
  122. if(sDay.length==1){sDay='0'+sDay;}
  123. if(sMonth.length==1){sMonth='0'+sMonth;}
  124. str=sDay+'-'+sMonth+'-'+sYear;
  125. }
  126. }
  127. if(fwformat=='dd/mm/yyyy'||fwformat=='DD/MM/YYYY'){
  128. arry = str.split('/');
  129. if(arry.length==3){
  130. sYear =arry[2];
  131. sMonth =arry[1];
  132. sDay =arry[0];
  133. if(sDay.length==1){sDay='0'+sDay;}
  134. if(sMonth.length==1){sMonth='0'+sMonth;}
  135. str=sDay+'/'+sMonth+'/'+sYear;
  136. }
  137. }
  138. if(!FWdateFormat(str,fwformat)){
  139. FWvalidateTip(obj,'输入的日期不正确 格式为 ' + fwformat);
  140. obj.value='';
  141. return false;
  142. }else{
  143. obj.value = str;
  144. }
  145. return true;
  146. }
  147. /**
  148. * 日期时间校验
  149. * @param obj 日期时间输入对象
  150. * @returns {Boolean} 校验通过与否
  151. */
  152. function FWdatetime(obj){
  153. var fwformat='yyyy-mm-dd';
  154. var arry;
  155. var str = obj.value;
  156. var sDate ="";
  157. var sTime ="";
  158. if(str==''){return true;}
  159. arry =str.split(' ');
  160. if(arry.length!=2){
  161. FWvalidateTip(obj,'输入的时间不正确 格式为 yyyy-mm-dd hh:mm:ss');
  162. obj.value='';
  163. return false;
  164. }
  165. sDate = arry[0];
  166. sTime = arry[1];
  167. if(!FWdateFormat(sDate,fwformat)){
  168. FWvalidateTip(obj,'录入的时间不正确 格式为 yyyy-mm-dd hh:mm:ss');
  169. obj.value='';
  170. return false;
  171. }
  172. if(!FWtimeFormat(sTime)){
  173. FWvalidateTip(obj,'时间不正确 格式为 yyyy-mm-dd hh:mm:ss');
  174. obj.value='';
  175. return false;
  176. }
  177. return true;
  178. }
  179. //只能录入时间
  180. function FWtimebox(obj){
  181. var arry;
  182. var reg;
  183. var bTF=false;
  184. var sHour ="";
  185. var sMinute ="";
  186. var str = obj.value;
  187. if(str==''){return;}
  188. if(str.length<5||str.length>8){
  189. bTF = false;
  190. }
  191. if(str.length==5){
  192. str=str+":00";
  193. }
  194. if(bTF){
  195. reg= /^([0-2][0-9][:][0-6][0-9][:][0-6][0-9])$/;
  196. bTF = reg.test(str);
  197. }
  198. bTF = FWtimeFormat(str);
  199. if(!bTF){
  200. FWvalidateTip(obj,'时间不正确 格式为 hh:mm:ss');
  201. obj.value='';
  202. return false;
  203. }
  204. obj.value= str;
  205. return true;
  206. }
  207. function FWtimeFormat(str){
  208. var reg;
  209. var arry;
  210. var sHour;
  211. var sMinute;
  212. var sSecond;
  213. var iHour=0;
  214. var iMinute=0;
  215. var iSecond=0;
  216. reg= /^([0-2][0-9][:][0-6][0-9][:][0-6][0-9])$/;
  217. if(!reg.test(str)){
  218. return false;
  219. }
  220. arry = str.split(":");
  221. sHour = arry[0];
  222. sMinute = arry[1];
  223. sSecond = arry[2];
  224. iHour = parseInt(sHour,10);
  225. iMinute = parseInt(sMinute,10);
  226. iSecond = parseInt(sSecond,10);
  227. if(iHour<0||iHour>24){return false;}
  228. if(iMinute<0||iMinute>60){return false;}
  229. if(iSecond<0||iSecond>60){return false;}
  230. return true;
  231. }
  232. //校验日期的格式
  233. // yyyy-mm-dd、yyyy/mm/dd、yyyymmdd、
  234. // dd-mm-yyyy、 dd/mm/yyyy、ddmmyyyy
  235. function FWdateFormat(str,fwformat){
  236. var reg;
  237. var arry;
  238. var sYear,sMonth,sDay;
  239. //默认的格式
  240. if(fwformat=='yyyy-mm-dd'||fwformat=='YYYY-MM-DD'||fwformat==''){
  241. arry = str.split('-');
  242. if(arry.length==3){
  243. sYear =arry[0];
  244. sMonth =arry[1];
  245. sDay =arry[2];
  246. str=sYear+'-'+sMonth+'-'+sDay;
  247. }
  248. reg= /^([1-2][0-9]{3}[-][0-1][0-9][-][0-3][0-9])$/;
  249. if(fwformat==''){fwformat='yyyy-mm-dd';}
  250. }
  251. //yyyymmdd
  252. if(fwformat=='yyyymmdd'||fwformat=='YYYYMMDD'){
  253. if(str.length==8){
  254. sYear =str.substr(0,4);
  255. sMonth =str.substr(4,2);
  256. sDay =str.substr(6,2);
  257. }
  258. reg= /^([1-2][0-9]{3}[0-1][0-9][0-3][0-9])$/;
  259. }
  260. // dd-mm-yyyy
  261. if(fwformat=='dd-mm-yyyy'||fwformat=='DD-MM-YYYY'){
  262. arry = str.split('-');
  263. if(arry.length==3){
  264. sYear =arry[2];
  265. sMonth =arry[1];
  266. sDay =arry[0];
  267. str=sDay+'-'+sMonth+'-'+sYear;
  268. }
  269. reg= /^([0-3][0-9][-][0-1][0-9][-][1-2][0-9]{3})$/;
  270. }
  271. //ddmmyyyy
  272. if(fwformat=='ddmmyyyy'||fwformat=='DDMMYYYY'){
  273. if(str.length==8){
  274. sYear =str.substr(4,4);
  275. sMonth =str.substr(2,2);
  276. sDay =str.substr(0,2);
  277. }
  278. reg= /^([0-3][0-9][0-1][0-9][1-2][0-9]{3})$/;
  279. }
  280. if(!reg.test(str)){
  281. return false;
  282. }
  283. if(!FWisDate(sYear,sMonth,sDay)){
  284. return false;
  285. }else{
  286. return true;
  287. }
  288. }
  289. //校验当前的日期是否合法
  290. function FWisDate(sYear,sMonth,sDay){
  291. var iYear=0;
  292. var iMonth=0;
  293. var iDay=0;
  294. iYear = parseInt(sYear,10);
  295. iMonth = parseInt(sMonth,10);
  296. iDay = parseInt(sDay,10);
  297. var date = new Date(iYear, iMonth - 1, iDay);
  298. if (date.getFullYear() != iYear || date.getMonth() + 1 != iMonth || date.getDate() != iDay)
  299. return false; // E.g. 31/02/*
  300. return true;
  301. }
  302. //校验身份证号码是否正确
  303. function FWidcardCheck(fwstr){
  304. var i;
  305. var reg;
  306. var temp;
  307. var format;
  308. var year,month,day;
  309. format = fwstr.length;
  310. reg= /^([0-9]{15}|[0-9]{17}[0-9]|[0-9]{17}[xX])$/;
  311. if(!reg.test(fwstr)){
  312. _IDCARD_MSG="公民身份号码输入不合法";
  313. return false;
  314. }
  315. if(format==18){
  316. temp=fwstr.substring(6,10);
  317. year=parseInt(temp,10);
  318. if(year<1900 || year>2200){
  319. _IDCARD_MSG="年份应介于1900与2200之间,请重新输入!";
  320. return false;
  321. }
  322. }
  323. else if(format==15){
  324. temp=fwstr.substring(6,8);
  325. year=parseInt(temp,10);
  326. if(year<00 || year>99){
  327. _IDCARD_MSG="年份应介于00与99之间,请重新输入!";
  328. return false;
  329. }
  330. }
  331. if(format==18){
  332. temp=fwstr.substring(10,12);
  333. }
  334. else if(format==15){
  335. temp=fwstr.substring(8,10);
  336. }
  337. month=parseInt(temp,10);
  338. if(month<1 ||month>12){
  339. _IDCARD_MSG="月份必须介于1与12之间!";
  340. return false;
  341. }
  342. if(format==18){
  343. temp=fwstr.substring(12,14);
  344. }
  345. else if(format==15){
  346. temp=fwstr.substring(10,12);
  347. }
  348. day=parseInt(temp,10);
  349. if((day==0)||(day>31)){
  350. _IDCARD_MSG="日必须介于0与31之间!";
  351. return false;
  352. }else if(day>28 && day<31){
  353. if(month==2){
  354. if(day!=29){
  355. _IDCARD_MSG= year+"年"+month+"月无"+day+"日。";
  356. return false;
  357. }
  358. else {
  359. if((year%4)!=0){
  360. _IDCARD_MSG=year+"年"+month+"月无"+day+"日。";
  361. return false;
  362. }
  363. else {
  364. if((year%100==0)&&(year%400!=0)){
  365. _IDCARD_MSG=year+"年"+month+"月无"+day+"日。";
  366. return false;
  367. }
  368. }
  369. }
  370. }
  371. }
  372. else if(day==31){
  373. if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){
  374. _IDCARD_MSG=month+"月无"+day+"日";
  375. return false;
  376. }
  377. }
  378. //15位转18位
  379. if(format==15){
  380. fwstr = FWidcar15to18(fwstr);
  381. format = 18;
  382. }
  383. //18位
  384. if(format==18){
  385. i=(fwstr.substr(0,1)*7+fwstr.substr(1,1)*9+fwstr.substr(2,1)*10+fwstr.substr(3,1)*5+fwstr.substr(4,1)*8+fwstr.substr(5,1)*4+fwstr.substr(6,1)*2+fwstr.substr(7,1)*1+fwstr.substr(8,1)*6+fwstr.substr(9,1)*3+fwstr.substr(10,1)*7+fwstr.substr(11,1)*9+fwstr.substr(12,1)*10+fwstr.substr(13,1)*5+fwstr.substr(14,1)*8+fwstr.substr(15,1)*4+fwstr.substr(16,1)*2 )% 11 ;
  386. if(i>2)i=12-i;
  387. else if(i==2)i="X";
  388. else if(i<2)i=1-i;
  389. if(fwstr.substr(17,1)==i){
  390. return true;
  391. }
  392. else
  393. {
  394. _IDCARD_MSG="公民身份号码输入不合法,校验位错误! ";
  395. return false;
  396. }
  397. }
  398. }
  399. //身份证号码15位转18位
  400. function FWidcar15to18(fwstr){
  401. var getno=fwstr;
  402. if(getno.length==15){
  403. var wi=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
  404. var ai=new Array(1,0,'X',9,8,7,6,5,4,3,2);
  405. var F1=getno.substr(0,6)+"19"+getno.substr(6,15);
  406. var F2=new Array();
  407. F2=F1.split("");
  408. var i=0;
  409. var j=0;
  410. var sum =0;
  411. for(i = 0 ; i<17; i++)
  412. {
  413. j = wi[i]*F2[i];
  414. sum = sum + j;
  415. }
  416. sum=sum%11;
  417. F2[17]=ai[sum];
  418. var F3=new String();
  419. for(i=0;i<18;i++){
  420. if(F2[i]=='X'){
  421. F3=F3+"X";
  422. break;
  423. }
  424. eval("F3=F3+"+F2[i]);
  425. }
  426. _IDCARD_MSG="身份证自动升位为"+F3;
  427. return F3;
  428. }else{
  429. return fwstr;
  430. }
  431. }
  432. //框架的提示框
  433. function FWalert(msg){
  434. return alert(msg);
  435. // jQuery.fwmessager.show(msg);
  436. }
  437. //框架的提示框
  438. function FWconfirm(msg,fn){
  439. //jQuery.fwmessager.confirm(msg,fn);
  440. var fun = fun = window[fn];
  441. if (window.confirm(msg)) {
  442. if(fun){
  443. fun(true);
  444. }
  445. } else if(fun){
  446. fun(false);
  447. }
  448. return false;
  449. }
  450. //只允许录入数值 e 为事件event
  451. function FWNumOnly(e){
  452. //王码五笔字形无法录入数字的问题
  453. if(event.keyCode==229){
  454. return true;
  455. }
  456. //左移动
  457. if(event.keyCode==37){
  458. return true;
  459. }
  460. //右移动
  461. if(event.keyCode==39){
  462. return true;
  463. }
  464. //小键盘的数字区
  465. if(e.keyCode >= 96 && e.keyCode <= 105){
  466. return true;
  467. }
  468. //键盘的数字区
  469. if ((e.keyCode >= 48 && e.keyCode <= 57 && e.ctrlKey == false && e.shiftKey == false)){
  470. return true;
  471. }
  472. return false;
  473. }
  474. function FWelementValidate(ele){
  475. readOnly = ele.readOnly;
  476. if (ele.vldStr==null){
  477. return null;
  478. }else if(readOnly){
  479. return null;
  480. }
  481. colName = ele.name;// 字段的名称
  482. validStrs = ele.vldStr;
  483. if($(ele).hasClass('postbox')){
  484. var s = ele.value;
  485. if(s.length>0&&s.length!=6){
  486. return '邮政编码字段不合法!';
  487. }
  488. }
  489. name_validStrs = validStrs.split('=');// 得到字段的中文名称
  490. if (name_validStrs.length == 2){
  491. colName = name_validStrs[0];
  492. validStrs = name_validStrs[1];
  493. pint=parseInt(ele.value,10);
  494. pfloat=parseFloat(ele.value,10);
  495. }
  496. tmpArray = validStrs.split('+');
  497. for (j = 0; j < tmpArray.length; j ++){//检查该字段的校验类型
  498. if (tmpArray[j] == 'nn' && isNull(ele.value) && ele.value == ''){//有非空却为空的字段
  499. return '不能为空!';
  500. }else if(tmpArray[j] == 'n' && !isNull(ele.value) && !isInteger(ele.value)){//有不合法的数字型字段
  501. return '数字不合法!';
  502. }else if(tmpArray[j] == 'h' && !isNull(ele.value)){//有不合法的身高型字段
  503. if(isInteger(ele.value) && (pint>0) && (pint<300)){
  504. }else{
  505. return '身高不合法!';
  506. }
  507. }else if(tmpArray[j] == 'w' && !isNull(ele.value)){//有不合法的体重型字段
  508. if(isInteger(ele.value) && (pint>0) && (pint<200)){
  509. }else{
  510. return '体重不合法!';
  511. }
  512. }else if(tmpArray[j] == 'a' && !isNull(ele.value)){//有不合法的年龄型字段
  513. if(isInteger(ele.value) && (pint>0) && (pint<200)){
  514. }else{
  515. return '年龄不合法!';
  516. }
  517. }else if(tmpArray[j] == 'alm' && !isNull(ele.value)){//有不合法的法定男性年龄型字段
  518. if(isInteger(ele.value) && (pint>=16) && (pint<=60)){
  519. }else{
  520. return '法定男性年龄(16~60)不合法!';
  521. }
  522. }else if(tmpArray[j] == 'alf' && !isNull(ele.value)){//有不合法的法定女性年龄型字段
  523. if(isInteger(ele.value) && (pint>=16) && (pint<=55)){
  524. }else{
  525. return '法定女性年龄(16~55)不合法!';
  526. }
  527. }else if(tmpArray[j] == 'p' && !isNull(ele.value)){//有不合法的邮政编码型字段
  528. if(isInteger(ele.value) && (ele.value.length == 6)){
  529. }else{
  530. return '邮政编码不合法!';
  531. }
  532. }else if(tmpArray[j]=='ml' && !isNull(ele.value) && !isEmail(ele.value)){//有不合法的邮箱字段
  533. return 'email地址不合法!';
  534. }else if(tmpArray[j] == 't' && !isNull(ele.value) && !isPhoneNumber(ele.value)){//有不合法的电话号码型字段
  535. return '电话号码不合法!(格式示例:+86020-12345678)';
  536. }else if(tmpArray[j] == 'd' && !isNull(ele.value) && !isDate3(ele.value)){//有不合法的日期型字典
  537. return '日期不合法!(格式示例:2005-05-05)';
  538. }else if(tmpArray[j] == 'dl' && !isNull(ele.value) && !isDateTime(ele.value)){//有不合法的(YYYY-MM-DD HH24:MI:SS)日期型字典
  539. return '日期不合法!(格式示例:2005-05-05 23:59:59)';
  540. }else if(tmpArray[j] == 'ds' && !isNull(ele.value) && !isDateShort(ele.value)){//有不合法的(YYYY-MM)日期型字典
  541. return '日期不合法!(格式示例:2005-05)';
  542. }else if(tmpArray[j] == 'dc' && !isNull(ele.value) && !isDateClose(ele.value)){//有不合法的(YYYYMM)日期型字典
  543. return '日期不合法!(格式示例:200505)';
  544. }else if(tmpArray[j] == 'dt' && !isNull(ele.value) && !isTime2(ele.value)){//有不合法的(HH24:MI:SS)时间型字典
  545. return '日期不合法!(格式示例:23:59:59)';
  546. }else if(tmpArray[j] == 'ac' && !isNull(ele.value) && !isAllChinese(ele.value)){//不合法的纯中文字符串
  547. return '纯中文字符串不合法!';
  548. }else if(tmpArray[j] == 'nc' && !isNull(ele.value) && hasChinese(ele.value)){//不合法的非中文字符串
  549. return '非中文字符串不合法!';
  550. }else if(tmpArray[j] == 'sfz' && !isNull(ele.value) && !IDCard_validate_na(ele.value)){//有不合法的身份证型字段
  551. return '身份证不合法!';
  552. }else if(tmpArray[j] == 's'&& !isNull(ele.value)){//有不合法的视力型字段
  553. if(checkFloat(ele.value, 1) && (((pfloat>=0.1) && (pfloat<=1.5))||((pfloat>=4.0)&&(pfloat<=5.2))) ){
  554. }else{
  555. return '视力不合法!(示例:0.1~1.5 或者 4.0~5.2)';
  556. }
  557. }else if(tmpArray[j] == 'c'&& !isNull(ele.value)){//有不合法的颜色型字段
  558. var c1=ele.value.substr(0,1);
  559. var c2=ele.value.substr(1,6);
  560. if((ele.value.length==7) && (c1=="#") && (parseInt(c2,16)>=0) && (parseInt(c2,16)<=16777215)){
  561. }else{
  562. return '颜色不合法!';
  563. }
  564. }else if(tmpArray[j].substr(0,1) == 'l'){
  565. var tmpA1=new String();
  566. tmpA=tmpArray[j];
  567. var bitL;
  568. if(arguments.length==2){
  569. if(options.valLenRule=='char'){
  570. bitL=(ele.value).length;
  571. }else{
  572. bitL=bitLength(ele.value);
  573. }
  574. }else{
  575. bitL=bitLength(ele.value);
  576. }
  577. var tmpAL=tmpA.length;
  578. var pos1=tmpA.indexOf("(");
  579. var pos2=tmpA.indexOf("-");
  580. var pos3=tmpA.indexOf(")");
  581. var bitL1=tmpA.substring(pos1+1,pos2);
  582. var bitL2=tmpA.substring(pos2+1,pos3);
  583. if(bitL!=0){
  584. var flag = true;
  585. if (pos2 < 0) {
  586. var bitL3 = tmpA.substring(pos1+1,pos3);
  587. if (isInteger(bitL3) && bitL > bitL3) {
  588. bitL1 = 0;
  589. bitL2 = bitL3;
  590. flag = false;
  591. }
  592. } else if(isInteger(bitL1)&&isInteger(bitL2)){
  593. if(bitL<bitL1||bitL>bitL2){
  594. flag = false;
  595. }
  596. }
  597. if (!flag) {
  598. return '长度不合法\n(字母或数字长度应在'+bitL1+'和'+bitL2+'之间,\n汉字长度应在'+Math.floor(parseInt(bitL1)/2)+'和'+Math.floor(parseInt(bitL2)/2)+'之间)';
  599. }
  600. }
  601. }else if(tmpArray[j].indexOf('f')!=-1&&tmpArray[j]!='alf'){ //校验浮点型数据类型
  602. var tmp = tmpArray[j];
  603. var len = tmp.length;
  604. var ips = tmp.indexOf('f');
  605. var str = "";
  606. var val = ele.value;
  607. var ixu =0; //小数位数
  608. var izu =0; //整数位数
  609. if(val==''){
  610. return null;
  611. }else{
  612. val = val.replace(/,/gi,'');
  613. }
  614. $(ele).css("text-align","right");
  615. if(!isFloat(val)){return '浮点数字不合法,必须为数值!';}
  616. if(ips!=-1&&(ips+1)!=len){
  617. str = tmp.split('f');
  618. ixu = parseInt(str[1],10);
  619. if(!checkFloat(val, ixu)){
  620. return '浮点数字不合法,必须为'+ixu+'位小数!';
  621. }
  622. }else{
  623. var ips2 = val.indexOf('.');
  624. if(ips2!=-1){ return '浮点数字不合法,不能带有小数!';}
  625. }
  626. str = tmp.split('f');
  627. if(str[0]==''){
  628. izu = 1;
  629. }else{
  630. izu = parseInt(str[0],10);
  631. }
  632. str = val.split('.');
  633. tmp = str[0];
  634. len = tmp.length;
  635. if(parseInt(len,10) > izu){
  636. return '浮点数字不合法,不能大于'+izu+'位整数!';
  637. }
  638. //以下的处理主要是给数值补小数位
  639. len = 0;
  640. if(str[1]!=null){
  641. tmp = str[1];
  642. len = tmp.length;
  643. }
  644. if(ixu!=len){
  645. tmp ='';
  646. for(i=len;i<ixu;i++){
  647. tmp+='0';
  648. }
  649. val = ele.value;
  650. str = val.split('.');
  651. if(str[1]!=null){
  652. ele.value = str[0]+'.'+str[1]+tmp;
  653. }else{
  654. ele.value = str[0]+'.'+tmp;
  655. }
  656. }
  657. }
  658. }//for
  659. return null;
  660. }