Skip to main content

Posts

Showing posts from June, 2008

Firefox 3

Microsoft Buluetooth Notebook Mouse 5000

今天刚买的,还用得不是很习惯,S$62。蓝牙,解放我的USB口子。主要的问题是不是用Microsoft的鼠标驱动来驱动,而是用的Mac的驱动,不能识别型号,功能键不能用,移动的时候也很不顺滑。

在App Engine中使用feedparser

在App Engine中,因为对urllib和urllib2进行了限制,导致 feedparser.parse('http://feed.url') 的形式也不能工作了。而feedparser也支持直接转换字符串。所以在 urlfetch 的帮助下也能实现同样的效果,代码如下: import feedparser from google.appengine.api import urlfetch url = 'http://feed.url' result = urlfetch.fetch(url) if result.status_code == 200   d = feedparser.parse(result.content)

colspan?colSpan!

在利用javascript动态向table增加tr的时候,可能遇到某个td可能有特殊colspan,这个时候如果你直接对tr.colspan赋值会发现没有任何作用,必须写做: tr.colSpan 。 WHY?

asp.net用正则表达式对密码进行格式验证

在asp.net中常用 RegularExpressionValidator 来对密码的格式进行第一次验证。现有密码格式要求如下: 长度8-12位。 至少有一个字母。 至少有一个数字。 至少有一个特殊字符(非数字和字母的字符,例如:!@#$%等)。 在MSDN里找 asp.net membership密码强度验证 相关的东西,里面有对6位以上,至少一数字和特殊字符的正则表达式如下" (?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,}) "。当我把短代码复制到 RegularExpressionValidator 里面才发现,即使是符合的规定的密码也不能通过验证。 查看asp.net的js文件,找到调用 RegularExpressionValidator 的函数: function RegularExpressionValidatorEvaluateIsValid(val) {   var value = ValidatorGetValue(val.controltovalidate);   if (ValidatorTrim(value).length == 0) {     return true;   }   var rx = new RegExp(val.validationexpression);   var matches = rx.exec(value);   return matches != null && value == matches[0]; } (?=pattern) 就是所谓的“正向预查”,是个“非获取匹配”,也就是说如果不能匹配 (?=pattern) 的话,matches的值是null,即使匹配了,matches[0](最后一次匹配的值)的值也是空("")。 根据以上,修改 RegularExpressionValidator 中的 ValidationExpression 为" (?=.{8,12})(?=.*[0-9]+)(?=.*[a-zA-Z]+)(?=.*\W+) (.*) "