Profil de Bo外热忱棵的家PhotosBlogListesPlus Outils Aide

Bo Chen

Occupation
Lieu
Centres d'intérêt 
感谢访问!
Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

外热忱棵的家

22/07/2009

正则表达式

正则表达式
Regular Expressions patterns
 
相关链接
这个是个英文版的,看得不大懂,下面这个链接有点像参考手册,写得好像也挺浅显易懂的。
 
如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。
 
 

js 日期比较

哎,发现自己什么都不会,先实行拿来主义再说……
 
项目中输入框日期格式不统一,两个日期比较不能按一个日期格式比较。这个js方法虽然繁琐写,但是包括的日期格式比较多,能够适应大多数日期比较。

Js代码 复制代码
  1. /**  
  2.  * 判断是不是一个正确的时间 yyyy-MM-dd  
  3.  * @param {String} str  
  4.  * @return {Date}  
  5.  */  
  6. Date.isSimpleDate = function(str){   
  7.     var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;   
  8.     var r = str.match(reg);   
  9.     if(r==null)return   null;   
  10.     var   d=   new   Date(r[1], r[3]-1,r[4]);   
  11.     var   newStr=d.getFullYear() + "-";   
  12.     newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;   
  13.     newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate());   
  14.     if(newStr==str){   
  15.         return d;   
  16.     }else{   
  17.         return null;   
  18.     }   
  19. }   
  20. /**  
  21.  * 判断是不是一个正确的时间类型 yyyy-MM-dd hh  
  22.  * @param {Object} str  
  23.  */  
  24. Date.isDateHH = function(str){   
  25.     var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})$/;   
  26.     var r = str.match(reg);   
  27.     if(r==null)return   null;   
  28.     var   d=   new   Date(r[1], r[3]-1,r[4],r[5]);   
  29.     var   newStr=d.getFullYear() + "-";   
  30.     newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;   
  31.     newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";   
  32.     newStr+=((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours());   
  33.     if(newStr==str){   
  34.         return d;   
  35.     }else{   
  36.         return null;   
  37.     }   
  38. }   
  39. /**  
  40.  * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm  
  41.  * @param {String} str  
  42.  */  
  43. Date.isDateHHMM = function(str){   
  44.     var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;   
  45.     var   r   =   str.match(reg);   
  46.     if(r==null)return   null;   
  47.     var   d=   new   Date(r[1], r[3]-1,r[4],r[5],r[6]);   
  48.     var   newStr=d.getFullYear() + "-";   
  49.     newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;   
  50.     newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";   
  51.     newStr += ((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours())+":";   
  52.     newStr += ((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes());   
  53.     if(newStr==str){   
  54.         return d;   
  55.     }else{   
  56.         return null;   
  57.     }   
  58. }   
  59. /**  
  60.  * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm:ss  
  61.  * @param {String} str  
  62.  */  
  63. Date.isDateHHMMSS = function(str){   
  64.     var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;   
  65.     var   r   =   str.match(reg);   
  66.     if(r==null)return   null;   
  67.     var   d=   new   Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);   
  68.     var   newStr=d.getFullYear() + "-";   
  69.     newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;   
  70.     newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";   
  71.     newStr += (((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours()))+":";   
  72.     newStr += (((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes())) + ":";   
  73.     newStr += ((d.getSeconds()<10&&r[7].length>1)?('0'+d.getSeconds()):d.getSeconds());   
  74.     if(newStr==str){   
  75.         return d;   
  76.     }else{   
  77.         return null;   
  78.     }   
  79. }   
  80. /***  
  81.  * 判断是日期1是不是在日期2后面  
  82.  * @param {Date/String} d1  
  83.  * @param {Date/String} d2  
  84.  * @return {Boolean} true 小于日期2  
  85.  */  
  86. Date.before = function(d1,d2){   
  87.     if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'object' && d2.constructor == Date)){   
  88.         if(d1<=d2){   
  89.             return true;   
  90.         }else{   
  91.             return false;   
  92.         }   
  93.     }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'string' && d2.constructor == String)){   
  94.   
  95.         var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);   
  96.         date1 = date1!=null?date1:Date.isDateHHMM(d1);   
  97.         date1 = date1!=null?date1:Date.isDateHHMMSS(d1);   
  98.         var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);   
  99.         date2 = date2!=null?date2:Date.isDateHHMM(d2)   
  100.         date2 = date2!=null?date2:Date.isDateHHMMSS(d2);   
  101.         if(date1==null||date2==null){   
  102.             alert("日期格式不正确!");   
  103.             return false;   
  104.         }   
  105.         if(date1<=date2){   
  106.             return true;   
  107.         }else{   
  108.             return false;   
  109.         }   
  110.     }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'object' && d2.constructor == Date)){   
  111.   
  112.         var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);   
  113.         date1 = date1!=null?date1:Date.isDateHHMM(d1);   
  114.         date1 = date1!=null?date1:Date.isDateHHMMSS(d1);   
  115.         if(date1==null||d2==null){   
  116.             alert("日期格式不正确!");   
  117.             return false;   
  118.         }   
  119.         if(date1<=d2){   
  120.             return true;   
  121.         }else{   
  122.             return false;   
  123.         }   
  124.     }else if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'string' && d2.constructor == String)){   
  125.   
  126.         var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);   
  127.         date2 = date2!=null?date2:Date.isDateHHMM(d2)   
  128.         date2 = date2!=null?date2:Date.isDateHHMMSS(d2);   
  129.         if(d1==null||date2==null){   
  130.             alert("日期格式不正确!");   
  131.             return false;   
  132.         }   
  133.         if(d1<=date2){   
  134.             return true;   
  135.         }else{   
  136.             return false;   
  137.         }   
  138.     }else{   
  139.         alert("无法判断输入数据类型!");   
  140.         return false;   
  141.     }   
  142. }  

 

from:
http://www.javaeye.com/topic/429365

jstl,fmt标签总结

jstl,fmt标签总结
首先,jstl既然可以国际化,那么必然可以自动根据local设置来选择资源文件。
2,fmt:setLocal 可以设置Local,从而改变输出格式。
3,fmt:message 可以输出资源文件里的key对应的value。
 <fmt:message key=xxx"/>
和struts一样 还可以传参数
 <fmt:message key=xxx"/>
  <fmt:param value="${abc}"/>
 </fmt:message>
4,<fmt:bundle>
 <fmt:setBundle>
 这地方有点意思,首先我在工程的WEB-INF/classes下面建立了一个资源文件resources.properties。然后在jsp页面里
 <fmt:bundle basename="resources.properties">使用此资源文件。
 Nitrox插件提示找不到resources.properties的警告.
 使用<fmt:message key="xxx"/>也无法显示
 原因:工程没有指定input ,output的对应关系.这样classes并不是classpath路径.
 解决办法:
  设置input为/WEB-INF/src ,output /WEB-INF/classes
  然后把resources.properties放在 /WEB-INF/src/下面。
  这样在/WEB-INF/classes/下面自动生成了一个resources.properties.这就是我想要的。
  好了,在试一次,资源文件找到了。
    <fmt:message key="xxx"/>也能正常显示了。
5,难道<fmt:message>必须和<fmt:bundle >搭配使用才行吗?实在觉得有点罗嗦。
    没办法,jstl就是这样用的。
6,jstl使用资源文件有个大的问题,因为fmt:bundle basename="xxx" 指定死了资源文件了,那么如果local不同了
 岂不是还从这个资源文件里取数据吗?这样美国的网页浏览仍旧显示日文,就不合理了.
 我理解错了,<fmt:bundle basename="xxx"/>并非指定资源文件就是他,而是指资源文件的基本名字,例如,
 如果是英国的local那么自动查找xxx_en.properties,如果是中国的local那么自动去查找xxx_zh.properties.
 和struts是一样的.
 
from:

天津的日偏食

昨天单位专门发了个日食观测镜,9:30的时候我专门在那瞅了几分钟,好像也就那样。
8:40的时候太阳的右上角有一点没有,9:30的时候像一个粗写的左圆括号。
 
没有日全食好看。
 
cl说武汉全变黑了。
 
这就是所谓的五百年一次,生活仍将继续。
 
20/07/2009

DIV样式

<%@ page language="java" pageEncoding="UTF-8"%>


<html>
 <head>
  <title>testStyle</title>
<style type="text/css">
.transparent1{
filter:alpha(opacity=30);
-moz-opacity:0.3;
opacity:0.3;
}

.transparent2{
filter:alpha(opacity=80);
-moz-opacity:0.8;
opacity:0.8;
}
</style>
  
  <SCRIPT language="JavaScript">
var canmove=false;


function clickButton()
{
 var obj2 = document.getElementById("ttBox");
    obj2.size += 1;
}

 

function clickButton2()
{
 var obj2 = document.getElementById("ttBox");
    obj2.style.color = "yellow";
}

 

//位置
function clickButton3()
{
 var obj2 = document.getElementById("testDIV1_1");
 var obj3 = document.getElementById("ttBox");

 //alert(obj2.innerHTML + obj2.style.left);
    //obj2.style.padding-left = "8px";
    //obj2.style.padding-top = "8px";
   
    obj2.style.left = "60px";
    obj2.style.top = "380px";
   
    obj2.innerHTML = obj2.innerHTML.replace("PADDING-LEFT: 8px;","PADDING-LEFT:16px;");
}

 

//透明度
function clickButton4()
{
 var obj2 = document.getElementById("testDIV1_1");
 var obj3 = document.getElementById("textBOX");
 //alert(obj2.innerHTML);
 
    //obj2.innerHTML = obj2.innerHTML.replace("FILTER: alpha(opacity=30)", "FILTER: alpha(opacity=80)");
    obj2.innerHTML = obj2.innerHTML.replace("transparent1", "transparent2");
    //obj3.class = "transparent2";
    //obj3.style.-moz-opacity = .8;
    //obj3.style.opacity = 0.8;
    //alert(obj3.className);
}


function moveit(e)
{
 var evtobj=window.event? window.event : e;
 if (this.dragapproved==1)
 {
  this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px"
  this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"
  return false
 }
}

 

</SCRIPT>

 </head>

 <body>
  
 
 

  <DIV id="testDIV">
   <DIV id="testDIV1_1" style="position: absolute;">
    <input type='textbox' name='textBOX' id="ttBox" title="tr" size="10"
     value="testText" class="transparent1"
     style="color: red; background-color: black; padding-left: 8px" />
   </DIV>


<BR><BR>

   <input type='button' name='button1' value="大小"
    onclick="javascript:clickButton()" />

   <input type='button' name='button1' value="颜色"
    onclick="javascript:clickButton2()" />

   <input type='button' name='button1' value="位置"
    onclick="javascript:clickButton3()" />

   <input type='button' name='button1' value="透明度"
    onclick="javascript:clickButton4()" />
  </DIV>

  <div id="svg" style="width: 100px; height: 100px;">
  </div>

<hr>
<p><a href="index0.jsp">返回主页</a>
 </body>
</html>

直接贴代码;
page4.jsp
------------------
 
 
 
Photo 1 sur 6