easyui版的工作流设计器源码 http://www.iteye.com/topic/1114540
strawberry是一款基于JavaScript(vml,svg)的Web拓扑图(工作流|流程设计器)
用来做可视化编程工具~
string.Format(@”{0}: {{ Name: ‘{1}’}},”, node.Attributes[“ID”].Value, node.Attributes[“Name”].Value)
字符串里包含{}得使用{{}}
/************************************************* Validator v1.03 code by 我佛山人 wfsr@msn.com *************************************************/ Validator = { Require : /.+/, Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/, Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/, Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/, IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/, Currency : /^\d+(\.\d+)?$/, Number : /^\d+$/, Zip : /^[1-9]\d{5}$/, QQ : /^[1-9]\d{4,8}$/, Integer : /^[-\+]?\d+$/, Double : /^[-\+]?\d+(\.\d+)?$/, English : /^[A-Za-z]+$/, Chinese : /^[\u0391-\uFFE5]+$/, Username : /^[a-z]\w{3,}$/i, UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/, IsSafe : function(str){return !this.UnSafe.test(str);}, SafeString : "this.IsSafe(value)", Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))", LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))", Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))", Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value", Range : "getAttribute('min') < (value|0) && (value|0) < getAttribute('max')", Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))", Custom : "this.Exec(value, getAttribute('regexp'))", Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))", ErrorItem : [document.forms[0]], ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"], Validate : function(theForm, mode){ var ōbj = theForm || event.srcElement; var count = obj.elements.length; this.ErrorMessage.length = 1; this.ErrorItem.length = 1; this.ErrorItem[0] = obj; for(var i=0;i with(obj.elements[i]){ var _dataType = getAttribute("dataType"); if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue; this.ClearState(obj.elements[i]); if(getAttribute("require") == "false" && value == "") continue; switch(_dataType){ case "Date" : case "Repeat" : case "Range" : case "Compare" : case "Custom" : case "Group" : case "Limit" : case "LimitB" : case "SafeString" : if(!eval(this[_dataType])) { this.AddError(i, getAttribute("msg")); } break; default : if(!this[_dataType].test(value)){ this.AddError(i, getAttribute("msg")); } break; } } } if(this.ErrorMessage.length > 1){ mode = mode || 1; var errCount = this.ErrorItem.length; switch(mode){ case 2 : for(var i=1;i this.ErrorItem[i].style.color = "red"; case 1 : alert(this.ErrorMessage.join("\n")); this.ErrorItem[1].focus(); break; case 3 : for(var i=1;i try{ var span = document.createElement("SPAN"); span.id = "__ErrorMessagePanel"; span.style.color = "red"; this.ErrorItem[i].parentNode.appendChild(span); span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*"); } catch(e){alert(e.descrīption);} } this.ErrorItem[1].focus(); break; default : alert(this.ErrorMessage.join("\n")); break; } return false; } return true; }, limit : function(len,min, max){ min = min || 0; max = max || Number.MAX_VALUE; return min <= len && len <= max; }, LenB : function(str){ return str.replace(/[^\x00-\xff]/g,"**").length; }, ClearState : function(elem){ with(elem){ if(style.color == "red") style.color = ""; var lastNode = parentNode.childNodes[parentNode.childNodes.length-1]; if(lastNode.id == "__ErrorMessagePanel") parentNode.removeChild(lastNode); } }, AddError : function(index, str){ this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index]; this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str; }, Exec : function(op, reg){ return new RegExp(reg,"g").test(op); }, compare : function(op1,operator,op2){ switch (operator) { case "NotEqual": return (op1 != op2); case "GreaterThan": return (op1 > op2); case "GreaterThanEqual": return (op1 >= op2); case "LessThan": return (op1 < op2); case "LessThanEqual": return (op1 <= op2); default: return (op1 == op2); } }, MustChecked : function(name, min, max){ var groups = document.getElementsByName(name); var hasChecked = 0; min = min || 1; max = max || groups.length; for(var i=groups.length-1;i>=0;i--) if(groups[i].checked) hasChecked++; return min <= hasChecked && hasChecked <= max; }, IsDate : function(op, formatString){ formatString = formatString || "ymd"; var m, year, month, day; switch(formatString){ case "ymd" : m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$")); if(m == null ) return false; day = m[6]; month = m[5]*1; year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); break; case "dmy" : m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$")); if(m == null ) return false; day = m[1]; month = m[3]*1; year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10)); break; default : break; } if(!parseInt(month)) return false; month = month==0 ?12:month; var date = new Date(year, month-1, day); return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate()); function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;} } }
在 javascript下得到字符串的真正长度,即字节长度(字节数) 代码如下: /** * description : 得到字符串的字节长度; * @author YangZY; * @version 0.2; * @return 返回字符串的字节长度(eg:"一二12"的字节长度是6); * 发布时间 : 2007.8.26; * 地点 : 哈尔滨; */ String.prototype.getLength=function(){ var text=this.replace(/[^/x00-/xff]/g,"**"); return text.length; } 例子: alert("一二三789".getLength()); 返回值为9.
这次去沈阳其实折射的是信息化时代人们的沟通并不“信息”,原本用视频沟通的事情变成了“倒地铁倒动车打的”,耗时2天的见面沟通,不过从效果上来说,的确比视频的效果好多了。大多数时间都在路上,动车上来回10个小时,地铁上2个小时,还在沈阳打车啊,坐公交啊。周日开车前几个小时还逛了沈阳的2个景点。回忆这趟,可以拆成几个有意思的场景:
No.1赶火车
周六闹醒后,感觉还是超困,小眯一下。一下就6点了,只是窗外还是一片漆黑,速速的洗漱收拾东西开始奔赴沈阳。
这个时候,天还未亮。抬头看,月亮还是很漂亮的。路口有人停车在抓拍月亮,我也顺手用手机拍了一张。手机拍摄的效果真的太不给力了,那种都市大楼间悬挂一轮美月的意镜全无,只有一砣漆黑。
7点多赶到北京站,动车已经开走。立即办理改签,服务台的GG想给我改到9点的车,晕死。还好心里有谱,让他改了个7点半的D15.时间很紧很紧,小跑着冲了进去。
No.2 第一次入住7天酒店
7天酒店真的太强大了,全国都铺上了,处处可见。7天的品牌感觉还挺不错的,不过域名真的好长好烂。 7天有一个特别的地方是,在毛巾方面推“安全卫生”概念,有个袋子包裹着。不太好的地方是,感觉这水温有点不足,牙刷太硬,水池看起来不是很干净。靠窗的床边有不知道是哪一波人战斗后留下的几砣卫生纸啊、烟头啊。
No.4头一回觉得手擀面好吃
北漂这么久,头一回觉得手擀面好吃~
No.3 酷必乐KTV
从火锅店出来,好强大的音浪袭来,Adele的rolling in the deep,有意思的是ktv的名字读起来很像是 苦B了 KTV
No.5挤时间逛沈阳
9点多在楼下吃杭州小包子,有人忘了带足钱,跟老板打招呼下次补上,老板说好。一阵超级和谐的民风啊。时间够紧的,逛沈阳也是考虑到12点半才有火车。手机特不给力,慢得要死。求助校友推荐景点,锁定新乐、北陵。的哥说有故宫,我问有北京的故宫那么大么?最后选择了新乐。
No.5.1 群婚的人类 新乐沸点!
新乐景点对于热爱人类文明发展史啊,热爱历史的亲来说,应该算是一个景点吧。我觉得对不起我这20块钱的门票就是,不过来了就来了,巴掌大的景点也能挖掘些乐趣。纯属恶搞娱乐一下。
这得花费多少阿姨去修正这个网址的bug啊,这可很精细的活哟
物品的用途专家也是在猜测,大家都可以猜测一下
人类恢复群婚吧!人类再也不用为剩男剩女发愁了!妹纸读博为人类作贡献再也不用担心婚姻问题了。
“复制品”有点碍眼
博物馆从新乐人的起居、图腾、饮食、丧葬、婚姻、服饰。
“下层”这个东东出现的次数真的很多很多。那个几千年后的专家门,能不能用“上层”描述一下本人~
上层的东东也有。
真像来了!
新乐品味独特的小屋,感觉就像海南康乐园酒店的高端品味。嘿嘿,原始人很有品味的哈。
进去看看~黑黑的有人影,好恐怖!!!!
突然有声音,又吓着了!自动讲解又乍现了,真吓人!!!
自己一个人在这新乐遗址,像是进恐怖城!
啥也不说了,新乐太小了,乐趣自找!
No.5.2 北陵公园
北陵公园票中票,公园6块,陵宫遗物及高仿清代器物展 20块,清昭陵陵寝30元 通票是50块钱
陵宫遗物及高仿清代器物展太坑人了,这20块钱花得有些背,感觉没啥好看的,还各种高仿。
北陵公园还挺大的,好多松树,还有松鼠可以看,一跳一跳的很可爱!
由于北陵公园有点大,我绕了好久,实在是感觉不对头,再绕就得去火车站了。找几个人打听一下,赶紧奔到重要的景点。
清昭陵不错的景点,在古代建筑群的感觉,在城墙上走一走,感觉很独特,就是那种感觉~~
人挂掉之后,能如此礼遇……
爱新觉罗-皇太极!
No.End
北京 10度,沈阳7度,温度变化也不是很大。从物理学的角度来看,地球离太阳那么那么远,太阳光来到地球后,发散的程度已经很大了,所以北京到沈阳的距离也不会形成巨大的温差。
No.Underground
用一个1平方米的小水池,让太阳照一会儿,记录一分钟,用温度计测出温差,算出能量值m。用现成的地理学知识,地球到太阳的路径r,算出太阳光照射到地球位置的球面面积n平方米。那么太阳每分钟释放的能量就算出来了:m*n
用Chrome调试页面的时候发现,百度的广告都发到调试信息里来了!!!调试信息头里塞广告,唯度娘是也!
Ghrome里按F12
一张网页,要经历怎样的过程,才能抵达用户面前?一位新人,要经历怎样的成长,才能站在技术之巅?探寻这里的秘密;体验这里的挑战;成为这里的主人;加入百度,加入网页搜索,你,可以影响世界。 logic_7f9f6806.js:50
请将简历发送至 ps_recruiter@baidu.com( 邮件标题请以“姓名-应聘XX职位-来自console”命名) logic_7f9f6806.js:50
职位介绍:http://dwz.cn/hr2013
————————————————-
无需诧异,猎奇到底
豆瓣也插了:
知乎也插了:
偶也插点信息进去~~请按F12查看!