<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <Meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <style> ul{ list-style:none; } *{ margin:0; padding:0; } </style> <body > <div align="center" style="height:500px;width:600px;margin-top:70px;margin-left:250px;background-color:#cccccc;"> <h1 >短信内容检查</h1><br /> <p align="left" style="color:red">短信内容规则:</p> <div align="left" style="height:350px; padding-left:20px;"> <ul> <li>1、字数不能超过70个(140字节)</li> <li>2、需要有一句:“xx到xx度”</li> <li>3、需要有一句:“湿度xx%到xx%”</li> <li>4、需要有一句:“东莞市气象台xx月xx日” 或 “东莞气象台xx月xx日”</li> <li>5、气温的范围为:0-40</li> <li>6、湿度的范围为:0-100</li> <li>7、日期必须和当前机器日期一致</li> </ul> <textarea id="content" cols="100" rows="10" onchange="checkOne()" onkeyup="checkOne();" style="height:140px;width:500px;"></textarea><span id="num">0/140</span><br/><span id="tip" style="color:#FF0000"></span><br /> <button onclick="chenckAll()">检查</button> </div> </div> <script type="text/javascript"> //检查文本域里面的字数 function checkOne(){ var content = document.getElementById("content"); limit(content,140); var byteNum = content.value.replace(/[^\x00-\xff]/g,"**").length; document.getElementById("num").innerHTML =""+ byteNum+"/140"; } //检查、过滤 function chenckAll(){ checkOne(); var content = document.getElementById("content").value; var regex=/湿度\d{1,3}%到\d{1,3}%/; var re1 = /\d{1,3}到\d{1,3}度/; var re2 = /东莞市气象台\d{1,2}月\d{1,2}日/; var re3 = /东莞气象台\d{1,2}日/; var dateM = formatDate((new Date()),"MM"); var dateD = formatDate((new Date()),"dd"); if(!regex.test(content)){ document.getElementById("tip").innerHTML="需要有一句:“湿度xx%到xx%”"; return; }else{ var s = content.match(regex)+""; var x1 = parseInt(s.substring(2,s.indexOf('%'))); var x2 = parseInt(s.substring((s.indexOf('到'))+1,s.length-1)); if(x1<0||x1>100||x2<0||x2>100){ document.getElementById("tip").innerHTML="湿度范围应在0-100"; return; } if(x1>x2){ document.getElementById("tip").innerHTML="湿度区间需调整"; return } } if(!re1.test(content)){ document.getElementById("tip").innerHTML="需要有一句:“xx到xx度”"; return; }else{ var s = content.match(re1)+""; var x1 =parseInt(s.substring(0,s.indexOf('到'))); var x2 = parseInt(s.substring(s.indexOf('到')+1,s.length-1)); if(x1<0||x1>40||x2<0||x2>40){ document.getElementById("tip").innerHTML="温度范围应在0-40"; return; } if(x1>x2){ document.getElementById("tip").innerHTML="温度区间需调整"; return; } } if(!re2.test(content)&&!re3.test(content)){ document.getElementById("tip").innerHTML="需要有一句:“东莞市气象台xx月xx日” 或 “东莞气象台xx月xx日”"; return; }else{ var s = content.match(re3)+""; if(s=='null'){ var s1 = content.match(re2)+""; var dtime = s1.substring(s1.indexOf('台')+1,s1.length); var month = dtime.substring(0,dtime.indexOf('月')); var day = dtime.substring(dtime.indexOf('月')+1,dtime.length-1); if(month.length==1){ month ='0'+month; } if(day.length==1){ day = '0'+day; } if(dateD!=day||dateM!=month){ document.getElementById("tip").innerHTML="日期与当前时间不符"; return; } }else{ var dtime =s.substring(s.indexOf('台')+1,s.length); var month = dtime.substring(0,dtime.length-1); if(month.length==1){ month ='0'+month; } if(day.length==1){ day = '0'+day; } if(dateD!=day||dateM!=month){ document.getElementById("tip").innerHTML="日期与当前时间不符"; return; } } } document.getElementById("tip").innerHTML="检查通过!"; } //日期格式化函数 function formatDate(date,format){ var paddNum = function(num){ num += ""; return num.replace(/^(\d)$/,"0$1"); } //指定格式字符 var cfg = { yyyy : date.getFullYear() //年 : 4位,yy : date.getFullYear().toString().substring(2)//年 : 2位,M : date.getMonth() + 1 //月 : 如果1位的时候不补0,MM : paddNum(date.getMonth() + 1) //月 : 如果1位的时候补0,d : date.getDate() //日 : 如果1位的时候不补0,dd : paddNum(date.getDate())//日 : 如果1位的时候补0,hh : date.getHours() //时,mm : date.getMinutes() //分,ss : date.getSeconds() //秒 } format || (format = "yyyy-MM-dd hh:mm:ss"); return format.replace(/([a-z])(\1)*/ig,function(m){return cfg[m];}); } function len(s) { s = String(s); return s.length + (s.match(/[^\x00-\xff]/g) || "").length;// 加上匹配到的全角字符长度 } function limit(obj,limit) { var val = obj.value; if (len(val) > limit) { val=val.substring(0,limit); while (len(val) > limit){ val = val.substring(0,val.length - 1); }; obj.value = val; } } </script> </body> </html>