loading tweet...

为了zooomr的免费pro帐户

July 21st, 2006 | htmlor | blogging | 3 Comments »

发现好多人都在谈论zooomr送bloggers免费pro帐户”的这个事情,自己也忍不住了,毕竟这个“每月上传2.5GB,不限总容量”还是很有吸引力的。

这篇就是专门为得到这个帐户而写的,呵呵。照片如下:

my notebook & u10

update: 写完之后,去激活页面验证,不到10秒钟就激活了。乖乖,这效率真是高啊。


尤文超市大甩卖开始

July 21st, 2006 | htmlor | 足球 | No Comments »

750万欧元的穆图仓惶出逃佛罗伦萨(倒霉的家伙,就是跑路了也没逃过降级的命运差点降级)之后,皇马、巴萨分别以2300万欧元买下埃莫森、卡纳瓦罗2100万欧元买下赞布罗塔、图拉姆,尤文“超市”大甩卖活动正式开始。

截至目前,后卫差不多卖完了,布冯看来也快走了,中前场呢?刚来一年的维埃拉肯定不会陪尤文打意乙,伊布跟特雷泽盖也不像是忠贞不二的主儿,泽比纳,卡莫拉内西…… 嗯,大致就是这样子了。

虽然一直以来对尤文不太感冒,但看到树倒之后猢狲们散的这么快,“迅雷不及掩耳盗铃”,还真是有点感到悲哀。

一年之后重返意甲,这是尤文的希望,有戏吗?我看玄,相当di玄。


正则表达式对象与全局RegExp对象

July 21st, 2006 | htmlor | javascript | 1 Comment »

javascript内部对象中,关于正则表达式有两个对象:正则表达式对象(regular expression object)与全局RegExp对象(global RegExp object)。这两者很容易被混淆。以下主要说明它们的不同。

正则表达式对象需要创建,如 var re = new RegExp("\\d{4}", "ig");(同 var re = /\d{4}/ig;)。它的属性有lastIndex、source、multiline、ignoreCase、global,方法有compile、exec、test。全局RegExp对象不需要创建就可以直接使用。它的属性有input(opera无)、index(ie专有)、lastIndex(ie专有)、lastMatch(opera无)、lastParen(opera无)、leftContext、rightContext、multiline(firefox专有)和$1-$9,没有方法。

我的理解是,全局RegExp对象是对正则表达式匹配结果的体现,它包含了最新的关于正则表达式匹配的信息。打个比方来说,我正在写一篇文章,10点时文章有100字,1小时后我又加了10个字,然后保存。那么此时的文章就包含了新的信息:最后修改时间由10点变成了11点,字数则由100变成了110。正则表达式匹配就像是修改文章,而全局RegExp对象就是保存后的文章。每次使用正则表达式匹配之后,全局RegExp对象的属性就会随之相应变化。

运行以下代码会看到很明显的结果:

function demo(){
  alert("匹配前的 RegExp:\\n" + getRegExpProperties());
  var str = "I like Javascript & CSS.";
  var re = new RegExp("(.*?)(css)","i");
  var matches = str.match(re);
  alert("第一次匹配后的 RegExp:\\n" + getRegExpProperties());
  alert("第一次匹配得到的数组:\\n" + matches);
  var re2 = new RegExp("([A-Z]+)","g");
  var matches2 = str.match(re2);
  alert("第二次匹配后的 RegExp:\\n" + getRegExpProperties());
  alert("第二次匹配得到的数组:\\n" + matches2);
}
function getRegExpProperties(){
  var str = "";
  if(document.all && window.ActiveXObject){
    var keys = ["input","index","lastIndex","lastMatch","lastParen","leftContext","rightContext","$1","$2","$3","$4","$5","$6","$7","$8","$9"];
    var key;
    for(var i=0; key=keys[i]; i++){
      str += key + ": " + RegExp[key] + "\\n";
    }
  }
  else{
    for(var key in RegExp){
      str += key + ": " + RegExp[key] + "\\n";
    }
  }
  return str;
}
demo();

那么能够改变全局RegExp对象属性的匹配操作有哪些呢?有5种,分别是String对象的match、replace和split方法,以及正则表达式对象的exec和test方法。其中前3种比较常用。这些方法的具体使用以后再谈。


Page 4 of 6« First...23456