Monthly Archives: 3 月 2011

爱好收藏

春花秋月~问君能有几多愁

很美的词~~
-----------
虞美人
【南唐】李煜
春花秋月何时了?往事知多少。
小楼昨夜又东风,故国不堪回首月明中。
雕栏玉砌应犹在,只是朱颜改。
问君能有几多愁,恰似一江春水向东流。

Hello World

javascript,少写“var”造成的面向对象的bug

下面这段代码,如果按照纯面向对象习惯的理解,当点击test按钮时,应该会alert一个“pp11”,和一个“pp22”,然而,实际情况时,会连续alert两个“pp22”~~

$(document).ready(function(){
  var t1 = new TST('pp11');
  var t2 = new TST('pp22');
});
//类
function TST(pars){
  this.p1 = pars;
  this_ = this;
  $('button.test').click(function(){
    alert(this_.p1);
  });
}

出现这种情况的原因,我想应该是出在this的中间变量“this_”上:创建t1,t2对象时,test按钮被绑定了两次click事件,传入的参数都是this_,但创建t2时的this_覆盖了t1的this_,所以,再点击按钮时,实际传入的是两个t2

var this_ = this;

上面的一个小小的改动,证实了我的猜测:this_前面加了var以后,this_便不会相互覆盖,程序正常了!

Hello World

jquery bind/unbind的使用

使用jquery的bind方法可以为一个对象的一个事件绑定绑定多个处理函数,甚至可以多次绑定一个方法,比如:

$(xxx).bind(‘click’, fun1).bind(‘click’, fun2).bind(‘click’, fun1);

而unbind用于删除绑定的方法,比如$(xxx).unbind(‘click’)

……

但是,如果只想删除fun2哪?以前看得很多jquery里都没有关于这种操作的介绍,所以自然就一直以为只能整个的将click处理调,今天试了另外一种操作:$(xxx).unbind(‘click’, fun2),可以解除fun2的绑定

住:$(xxx).unbind(‘click’, fun1),会将之前注册的两次fun1全部删除掉

---------------------

补充:

在jQuery下使用 $(selector).unbind(‘hover’)无效,可以使用如下方法代替:
$(selector).unbind(‘mouseenter’).unbind(‘mouseleave’);
或:
$(selector).unbind(‘mouseenter mouseleave’);

可以发现hover事件是由mouseenter和mouseleave组成,以区别mouseover和mouseout。
在unbind它的这两个事件后,不会对mouseover和mouseout事件造成影响。

Hello World 他山石

javascript 刷新页面的方法

1. window.location.reload

<script language=”JavaScript”>
function myrefresh(){
window.location.reload();
}
setTimeout(‘myrefresh()’,1000); //指定1秒刷新一次
</script>

2. 刷新包含该框架的页面用
<script language=JavaScript>
parent.location.reload();
</script>

3. 子窗口刷新父窗口
<script language=JavaScript>
self.opener.location.reload();
</script>
( 或 <a href=”javascript:opener.location.reload()”>刷新</a>   )

4.  刷新另一个框架的页面用
<script language=JavaScript>
parent.otherFrameID.location.reload();
</script>

5. 使用meta,自动定时刷新
<meta http-equiv=”refresh” content=”20″>
其中20指每隔20秒刷新一次页面.

参考:http://www.cnblogs.com/lmjob/archive/2008/08/11/1265164.html

Hello World

php使用正则抠文字

比如有邮件模板:

当当网已收到您于${time}提交的订单${orderId},我们会在收到您的${amount}元的货款后及时处理订单,预计1-2天从${location}发货。

现在需要提取出其中的占位符来做下一步的处理,可以首先使用“/\\$\{\w+\}/”抠出占位符“${xxx}”,然后使用“/\w+/”抠出占位符内的支付,这两步,都需要使用preg_match_all方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function get_placeholder($str){
  $reg1 = "/\\$\{\w+\}/";
  $out1 = array();
  $r1 = preg_match_all($reg1, $str, $out1, PREG_PATTERN_ORDER);
  if($r1 &gt; 0){
    $reg2 = "/\w+/";
    $rArr = array();
    foreach($out1[0] as $o){
      $out2 = array();
      $r2 = preg_match_all($reg2, $o, $out2, PREG_PATTERN_ORDER);
      if($r2 &gt; 0){
        array_push($rArr, $out2[0][0]);
      }
    }
    if(count($rArr) &gt; 0){
      return $rArr;
    }
  }
  return false;
}

将上面的邮件模板放进去,便可以返回:array(‘time’, ‘orderId’, ‘amount’, ‘location’)

Hello World

cakephp取referer

再Controller内:

$this->referer()

比如:$this->redirect($this->referer());

Hello World

MAMP安装mongo

下载osx-php5.3-1.0.11.zip,将得到的mongo.so放在下面路径下:

然后在对应的厄php.ini中添加:extension=mongo.so

end

Hello World

常用正则表达式搜集

中文字符:[\u4e00-\u9fa5]
双字节字符(包括汉字在内):[^\x00-\xff]
空白行:\n\s*\r
HTML标记:<(\S*?)[^>]*>.*?</\1>|<.*? /> --不完美,但基本够用
Email:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL:[a-zA-z]+://[^\s]*
字母开头,允许5-16字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
国内电话:\d{3}-\d{8}|\d{4}-\d{7}
QQ号:[1-9][0-9]{4,}
中国邮政编码:[1-9]\d{5}(?!\d)
身份证:\d{15}|\d{18}
匹配ip地址:\d+\.\d+\.\d+\.\d+ --不完全匹配
特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
业界杂谈 他山石 爱好收藏

[转]ipad2 拆解

~~对于某些人,拆解最新的电子/机械产品,永远是他们最大的乐趣~~和iphone4类似,ipad2仍然是把最大的空间留给电池,主板被挤到了较小的部分~~续航力一直是苹果的大卖点

来自:http://pad.zol.com.cn/220/2204965.html

其他

老照片

http://news.sdau.edu.cn/view.php?id=15284