正则表达式验证内容

前端之家收集整理的这篇文章主要介绍了正则表达式验证内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<!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>
原文链接:https://www.f2er.com/regex/360846.html

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