bravf.ZH

爱睡觉,不爱早起.

2012年2月1日 #

关于前端验证

最近写了个关于前端验证的东西 http://daimou.sinaapp.com/xtest/test.html

posted @ 2012-02-01 17:32 bravf 阅读(11) 评论(0) 编辑

2011年11月4日 #

无聊的东西

// 原题
//($=[$=[]] [(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_);


////----------------------------------------------------------
//// 第一步
////----------------------------------------------------------
///x = func_0()[a](b)
//
//func_0 = ( $=[$=[]] [(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])] );
//a = __[_/_]+__[_+~$]+$_[_]+$$;
//b = _/_;
//
////----------------------------------------------------------
//// 第二步
////----------------------------------------------------------
//func_0 = ( $ = [c][d] );
//c = ( $=[] );
//d = ( (__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$]) )
//
//
//func_0 = ( $ = [[]][d] );
//d = ( (__="false")[_=3]+"[object Object]"[1]+($$=($_="true")[1]+$_[0]) );//__="false",_=3,$_="true"
//d = ( "s"+"o"+($$="r"+"t") );//$$="rt"
//d = "sort";
//func_0 = ( $=[[]]["sort"]) = [[]]["sort"]
//
////----------------------------------------------------------
//// 第三步
////----------------------------------------------------------
//a = "false"[1] + "false"[3+(-1)] + "true"[3] + "rt";
//a = "a"+"l"+"e"+"rt";
//b = 1;
//
////----------------------------------------------------------
//// 第四步
////----------------------------------------------------------
//x = func_0()["alert"](1);

x = ($=[[]]["sort"])()["alert"](1);
x = ($=Array.prototype.sort)()["alert"](1);

  

posted @ 2011-11-04 15:49 bravf 阅读(152) 评论(2) 编辑

2011年11月2日 #

python 一个小技巧

在python中,我们习惯用dict来配置数据,如下:

Config = {
    "version" : "1.0",
    "author" : "bravf"
}

并且以Config["version"]的方式来访问,好吧,搞Js的同学表示他太罗嗦了,Js可以Config.version,在python中这样访问会抛出异常:"'dict' object has no attribute 'version'", 看来,python中的"."运算符并不能用来访问键值对,只能访问一个类上的自有属性。那么转化一下吧:

#--------------------------------------------------------------------
# 说明:把dict形式的配置改成基于class的属性访问
# 好处:用"."运算符来访问
#--------------------------------------------------------------------
class EasyObj(object):pass
def DictToClass(_dict):
	obj = EasyObj()
	for m,n in _dict.iteritems() : setattr(obj,m,n)
	return obj
#end def

没多大的用处,只是希望能少写一些字符。

---------------------------分隔符-------------------------------------------------

好吧,上面的代码遇到这样的情况就歇菜了:

Config = {
		"version" : "1.0",
		"author"  : "bravf",
		"account" : {
			"user" : "bravf",
			"pwd" : "bravf",
			"language" : ["英语","日语"]
		},
		"a" : {
			"a_0" : "a_0",
			"a_1" : "a_1",
			"a_2" : {
				"a_2_0" : "a_2_0"
			}
		}
	}

因为没有深度遍历,加上递归搞定他:

#--------------------------------------------------------------------
# 说明:把dict形式的配置改成基于class的属性访问
# 好处:用"."运算符来访问
#--------------------------------------------------------------------
class EasyObj(object):pass
def DictToClass(_dict):
	obj = EasyObj()
	for m,n in _dict.iteritems() :
		if type(n) == type({}) : n = DictToClass(n)
		setattr(obj,m,n)
	#end for
	return obj
#end def

  

posted @ 2011-11-02 18:02 bravf 阅读(218) 评论(2) 编辑

2011年9月13日 #

转金融额表示

var fn = function(s){
return s.split("").reverse().join("").replace(/(\w{3})(?!$)/g,"$1,").split("").reverse().join("");
};

今天群里有人问,就顺便写了个。

posted @ 2011-09-13 15:19 bravf 阅读(24) 评论(0) 编辑

2011年9月6日 #

python 路径问题

得到当前py文件的父目录绝对路径:

root = "/".join(os.path.abspath(os.path.dirname(sys.argv[0])).split("/")[:-1])+"/"

  

posted @ 2011-09-06 17:31 bravf 阅读(22) 评论(0) 编辑

2011年8月19日 #

JSON.stringify

摘要: 这东西,低版本浏览器没有。所以: var JS = function(){ //花未眠 //bravfing@126.com //2011.8.19 var _toStr = function(obj){ var type = Object.prototype.toString.call(obj).slice(8,-1) , rs; //如果是html节点(不完全判断,可伪造) if(obj.nodeType!=null){ return "HTMLNODE" } ...阅读全文

posted @ 2011-08-19 10:54 bravf 阅读(324) 评论(2) 编辑

2011年7月27日 #

四则运算 --- 计算器(原创)

摘要: 本文将从头实现一个支持"加、减、乘、除、小括号"的四则运算器,语言用大众化的js,当然并不会使用动态语言的捷径(eval等)。-----------------------------------------------------------------------------------------------------------现给出一个四则运算式:exp = 1 + 2 * ((3+9) * 5 - 7) /3-----------------------------------------------------------------------------阅读全文

posted @ 2011-07-27 14:19 bravf 阅读(216) 评论(5) 编辑

2011年7月26日 #

老赵趣味编程之状态机解析url参数

摘要: 原链接:http://www.cnblogs.com/JeffreyZhao/archive/2009/10/12/code-for-fun-tokenizer.html今天偶然翻起,又细读了一遍,包括后面的2篇答案解析:http://www.cnblogs.com/jeffreyzhao/archive/2009/10/21/code-for-fun-tokenizer-answer-1.html"http://www.cnblogs.com/JeffreyZhao/archive/2009/10/22/code-for-fun-tokenizer-answer-2-fsharp.阅读全文

posted @ 2011-07-26 20:12 bravf 阅读(127) 评论(1) 编辑

2011年7月18日 #

APACHE+PHP+MYSQL+PHPMYADMIN在 windows下安装说明

摘要: 原文:http://www.cnblogs.com/xyxiong/archive/2011/05/13/2045579.html首先下载相关安装文件,地址如下:PHPhttp://windows.php.net/download/apachehttp://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.9-win32-x86-no_ssl-r2.msimysqlhttp://dev.mysql.com/downloads/mysql/phpmyadmin3.3.10 FINA http://www.crsky.com/soft/阅读全文

posted @ 2011-07-18 13:07 bravf 阅读(26) 评论(0) 编辑

2011年2月18日 #

[转] threading 多线程控制和处理

摘要: threading.Thread   Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入。下面分别举例说明。先来看看通过继承 threading.Thread类来创建线程的例子:阅读全文

posted @ 2011-02-18 10:59 bravf 阅读(51) 评论(0) 编辑