Archive for the ‘javascipt’ Category

交流的障碍

星期日, 9月 27th, 2009

Scarlett说有问题要我帮忙,当然是有偿的,于是就看了一下她所说的需求。

是要在一个WEB方式的调查问卷中搜集使用者对选项的mouseout/click/select的操作过程,而她也调研过了,建议我用mouselabweb.org的开源项目来做。

Mouselab是一个荷兰人做的开源项目,旨在提供一套web页上收集用户行为的工具。

本来我是打算用flash来满足这个需求的,然而我看了她给出来的需求,再看看mouselab的代码,觉得没问题,于是就做了一个雏形回去。

头几次的邮件交流我都觉得没问题,都是原有的需求上的一些细节定义,但快完工之前,逐渐多了一些不在第一次需求里面的内容,而有些也超出了mouselab的模板的能力,需要我全力去修改。

这样对我来说就比较难受了,一方面mouselab的代码写得风格并不好,缩进和变量定义看起来都很麻烦,而另一方面,显然Scarlett将数据采集和数据分析混淆在一起,她大概希望在代码里面将数据分析也做了,这显然不合适。

最终我只给她提供raw data的csv文件,剩下的工作则建议她好好学习用excel做好这一点。

……

尽管是朋友,但涉及到项目开发,就可以知道非工科专业的学生对项目的理解实在不同于工科的人。

连google也不能幸免的undefined

星期五, 8月 28th, 2009

用js来拼接字符串的时候会碰到这种变量未定义或者未初始化赋值的情况,网页的进入千变万化,连google也不能幸免。

我今天进入igoogle,左侧自动打开了网页版gtalk,看到这个”Chat with friends in undefined!”,当然有点莫名其妙……

WML Script运行环境

星期六, 8月 15th, 2009

今天8月15日,距离过来封闭开发一个月了,wmlscript的运行环境算是做完了,由于扩展的库函数也不多,所以工作得以提早一点完成。

比较有成就感的地方在于,这次除了脚本文本=>字节码的过程需要借助gateway的代码之外,字节码的执行环境部分完全是自己设计和编写代码的。

也经过了性能测试和功能测试,而在180M主频的ARM上计算WML Script脚本的MD5算法,只需要90个毫秒左右。

当然,在设计上的瑕疵还是存在的,导致在内存回收上有些不够完美的地方,不过经过一番修补,测试中已经不存在内存泄露的问题了。

对比一下流行的浏览器中用来执行javascript和方式与字节码执行wml script的方式:

javascript的执行是按照文本来进行逐行执行,而wml script则是预编译成字节码,然后像虚拟机一样执行。

从这个角度看,当然是字节码的执行效率更高了。当然,如果把javascript也进行预编译,执行效率应该也是可以的,只不过,编译过程所消耗的时间也会体现在页面加载过程中,这必然会令用户感到不爽。

Javascript控制swf播放

星期二, 2月 17th, 2009

有些使用swftools从pdf转换过来的swf,由于里面是一页一桢的,而每桢都有stop指令,因此如果要放在网页里面就需要用javascript增加控制其翻页的按钮。

样例代码:

<script language=’javascript’>

var movieObject = null;
var currentPage = 1;

function thisMovie()        //获取flash对象
{
if (movieObject == null)
{
if (navigator.appName.indexOf(”Microsoft”) != -1)
{
movieObject = window["testmovie"];
}
else
{
movieObject = document.testmovie;
}
}

return movieObject;
}

function next()           //向后翻页
{
if (currentPage < totalframes()) {
currentPage++;
thisMovie().Forward();
showpages();
}
}

function prev()          //向前翻页
{
if (currentPage > 1) {
currentPage–;
thisMovie().Back();
showpages();
}
}

function totalframes()            //获取flash的总桢数
{
if (navigator.appName.indexOf(”Microsoft”) != -1) {
return thisMovie().TotalFrames;
}
else {
return thisMovie().TotalFrames();
}
}

function showpages()           //显示当前页数
{
var t = document.getElementById(”pages”);
t.innerHTML = currentPage + “/” + totalframes();
}

</script>

HTML代码:

<body onload=”showpages();”>
<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″
codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0″
width=”600″ height=”800″ id=”testmovie”>
<param name=”movie” value=”1.swf”>
<param name=”quality” value=”high”>
<param name=”fullscreen” value=”true”>
<param name=”scale” value=”exactfit”>
<embed src=”1.swf” quality=”high” name=”testmovie”
pluginspage=”http://www.macromedia.com/go/getflashplayer”
type=”application/x-shockwave-flash” width=”600″ height=”800″>
</embed>
</object>
<input type=’button’ value=’Prev Page’ onclick=’prev();’>
<input type=’button’ value=’Next Page’ onclick=’next();’>
<div id=’pages’></div>

</body>

代码本身兼容Firefox和IE的,其中的区别在于,获取影片对象的时候,IE使用的是:windows["moviename"],而FX使用的是document.moviename;而调用movie的属性的时候,IE使用属性名,比如TotalFrames,而FX使用同名的方法TotalFrames()。

javascript里面获取汉字拼音的首字母

星期日, 11月 23rd, 2008

如题,这也是一个刚碰到的需求,2000多个中文词组,需要将其第一个汉字的拼音的首字母得到,然后按字母序排列。

当然在服务器端也能做这样的排序工作,不过现在需要的是在客户端的javascript里面获取。

我搜集了一下网上的资料,整理了一段代码,基本上可以应付GB2312字符集的要求了:

var PinYin1 = new Array(
“啊阿吖嗄腌锕埃挨哎唉哀皑癌蔼矮艾碍爱隘捱嗳嗌嫒瑷暧砹锿霭鞍氨安俺按暗岸胺案谙埯\
揞犴庵桉铵鹌黯肮昂盎凹敖熬翱袄傲奥懊澳坳拗嗷岙廒遨媪骜獒聱螯鏊鳌鏖”,
“芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸茇菝岜灞钯粑鲅魃白柏百摆佰败拜稗伯捭掰斑班\
搬扳般颁板版扮拌伴瓣半办绊阪坂贲钣瘢癍舨邦帮梆榜膀绑棒磅蚌镑傍谤蒡浜苞胞包褒剥薄\
雹保堡饱宝抱报暴豹鲍爆刨炮勹葆孢煲鸨褓趵龅杯碑悲卑北辈背贝钡倍狈备惫焙被臂孛陂邶\
埤萆蓓呗悖碚鹎褙鐾鞴奔苯本笨畚坌贲锛蚌崩绷甭泵蹦迸堋嘣甏逼鼻比鄙笔彼碧蓖蔽毕毙毖\
币庇痹闭敝弊必辟壁臂避陛秘泌匕俾埤芘荜荸萆薜吡哔狴庳愎滗濞弼妣婢嬖璧贲畀铋秕裨筚\
箅篦舭襞跸髀鞭边编贬扁便变卞辨辩辫遍匾弁苄忭汴缏煸砭碥窆褊蝙笾鳊标彪膘表婊骠杓飑\
飙飚灬镖镳瘭裱鳔髟鳖憋别瘪蹩彬斌濒滨宾摈傧豳缤玢槟殡膑镔髌鬓兵冰柄丙秉饼炳病并屏\
禀冫邴摒槟柏百剥薄玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳卜孛亳蕃啵饽檗擘礴钹鹁簸\
趵跛踣堡捕卜哺补埠不布步簿部怖埔卟逋瓿晡钚钸醭”,
“擦嚓礤猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿孱骖璨粲黪苍舱仓沧藏伧操糙槽曹草艹嘈\
漕螬艚厕策侧册测恻参岑涔层蹭曾噌插叉茬茶查碴搽察岔差诧刹喳嚓猹馇汊姹杈楂槎檫锸镲\
衩差拆柴豺侪钗瘥虿龇搀掺蝉馋谗缠铲产阐颤单冁谄蒇廛忏潺澶孱羼婵觇禅镡蟾躔昌猖场尝\
常长偿肠厂敞畅唱倡伥鬯苌菖徜怅惝阊娼嫦昶氅鲳超抄钞朝嘲潮巢吵炒绰剿怊晁耖车扯撤掣\
彻澈坼屮砗郴臣辰尘晨忱沉陈趁衬称谌谶抻嗔宸琛榇碜龀撑称城橙成呈乘程惩澄诚承逞骋秤\
盛丞埕噌徵枨柽塍瞠铖铛裎蛏酲吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽傺坻墀茌叱哧啻嗤彳饬\
媸敕眵鸱瘛褫蚩螭笞篪豉踟魑充冲虫崇宠种重茺忡憧铳舂艟抽酬畴踌稠愁筹仇绸瞅丑臭俦帱\
惆瘳雠初出橱厨躇锄雏滁除楚础储矗搐触处畜亍刍怵憷绌杵楮樗褚蜍蹰黜揣搋嘬膪踹川穿椽\
传船喘串舛遄巛氚钏舡疮窗幢床闯创怆疒吹炊捶锤垂陲棰槌春椿醇唇淳纯蠢莼鹑蝽戳绰啜辶\
辍踔龊差疵茨磁雌辞慈瓷词此刺赐次伺兹茈呲祠鹚粢糍聪葱囱匆从丛苁淙骢琮璁枞凑楱辏腠\
粗醋簇促蔟徂猝殂酢蹙蹴蹿篡窜攒汆撺爨镩摧崔催脆瘁粹淬翠萃啐悴璀榱毳隹村存寸忖皴磋\
撮搓措挫错厝嵯脞锉矬痤瘥鹾蹉躜”,
“搭达答瘩打大耷哒嗒怛妲沓疸褡笪靼鞑大呆歹傣戴带殆代贷袋待逮怠埭甙呔岱迨骀绐玳黛\
耽担丹单郸掸胆旦氮但惮淡诞弹蛋赡石儋萏啖澹殚赕眈疸瘅聃箪当挡党荡档谠凼菪宕砀铛裆\
刀捣蹈倒岛祷导到稻悼道盗刂叨帱忉氘焘纛德得的地锝得澄蹬灯登等瞪凳邓噔嶝戥磴镫簦的\
堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔提氐籴诋谛邸坻荻嘀娣柢棣觌砥碲睇镝羝骶嗲颠\
掂滇碘点典靛垫电佃甸店惦奠淀殿阽坫巅玷钿癜癫簟踮碉叼雕凋刁掉吊钓调铞铫貂鲷跌爹碟\
蝶迭谍叠垤堞揲喋牒瓞耋蹀鲽丁盯叮钉顶鼎锭定订仃啶玎腚碇町铤疔耵酊丢铥东冬董懂动栋\
侗恫冻洞咚岽峒氡胨胴硐鸫兜抖斗陡豆逗痘都蔸窦蚪篼都督毒犊独读堵睹赌杜镀肚度渡妒芏\
嘟渎椟牍蠹笃髑黩端短锻段断缎椴煅簖堆兑队对怼憝碓墩吨蹲敦顿囤钝盾遁沌炖砘礅盹镦趸\
度掇哆多夺垛躲朵跺舵剁惰堕驮咄哚沲缍铎裰踱”,
“阿蛾峨鹅俄额讹娥恶厄扼遏鄂饿哦噩谔垩苊莪萼呃愕屙婀轭腭锇锷鹗颚鳄诶恩蒽摁而儿耳\
尔饵洱二贰迩珥铒鸸鲕”,
“发罚筏伐乏阀法珐垡砝藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛蕃蘩幡梵燔畈蹯坊芳方肪房\
防妨仿访纺放匚邡枋钫舫鲂菲非啡飞肥匪诽吠肺废沸费芾狒悱淝妃绯榧贲腓斐扉砩镄痱蜚篚\
翡霏鲱芬酚吩氛分纷坟焚汾粉奋份忿愤粪偾瀵玢棼贲鲼鼢丰封枫蜂峰锋风疯烽逢冯缝讽奉凤\
俸酆葑唪沣砜佛否缶佛夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副\
覆赋复傅付阜父腹负富讣附妇缚咐匐凫阝郛芙芾苻茯莩菔拊呋幞怫滏艴孚驸绂绋桴赙祓砩黻\
黼罘稃馥蚨蜉蝠蝮麸趺跗鲋鳆”,
“噶嘎夹咖伽尬尕尜旮钆该改概钙盖溉芥丐陔垓戤赅胲干甘杆柑竿肝赶感秆敢赣坩苷尴擀泔\
淦澉绀橄旰矸疳酐冈刚钢缸肛纲岗港杠扛戆罡筻篙皋高膏羔糕搞镐稿告睾诰郜藁缟槔槁杲锆\
盖哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各合咯鬲仡哿圪塥嗝纥搿膈铪镉袼虼舸骼给根跟亘茛\
哏艮耕更庚羹埂耿梗颈哽赓绠鲠工攻功恭龚供躬公宫弓巩汞拱贡共廾珙肱蚣觥钩勾沟苟狗垢\
构购够佝诟岣遘媾缑枸觏彀笱篝鞲辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇贾嘏诂菰崮汩梏\
轱牯牿臌毂瞽罟钴锢鸪鹄痼蛄酤觚鲴鹘刮瓜剐寡挂褂卦诖呱栝胍鸹乖拐怪掴棺关官冠观管馆\
罐惯灌贯纶倌莞掼涫盥鹳鳏光广逛咣犷桄胱瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽炔匦刿庋宄\
妫桧炅晷皈簋鲑鳜辊滚棍衮绲磙鲧锅郭国果裹过涡馘埚掴呙帼崞猓椁虢锞聒蜾蝈”,
“蛤哈铪骸孩海氦亥害骇还咳嗨胲醢酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉邗菡撖瀚晗\
焓顸颔蚶鼾夯杭航吭巷行沆绗颃镐壕嚎豪毫郝好耗号浩貉蒿薅嗥嚆濠灏昊皓颢蚝呵喝荷菏核\
禾和何合盒貉阂河涸赫褐鹤贺吓诃劾壑嗬阖纥曷盍颌蚵翮嘿黑痕很狠恨哼亨横衡恒蘅珩桁轰\
哄烘虹鸿洪宏弘红黉訇讧荭蕻薨闳泓喉侯猴吼厚候后堠後逅瘊篌糇鲎骺核呼乎忽瑚壶葫胡蝴\
狐糊湖弧虎唬护互沪户冱唿囫岵猢怙惚浒滹琥槲轷觳烀煳戽扈祜瓠鹄鹕鹱虍笏醐斛鹘花哗华\
猾滑画划化话骅桦砉铧槐徊怀淮坏踝欢环桓还缓换患唤痪豢焕涣宦幻郇奂垸萑擐圜獾洹浣漶\
寰逭缳锾鲩鬟荒慌黄磺蝗簧皇凰惶煌晃幌恍谎隍徨湟潢遑璜肓癀蟥篁鳇灰挥辉徽恢蛔回毁悔\
慧卉惠晦贿秽会烩汇讳诲绘溃诙茴荟蕙咴哕喙隳洄浍彗缋桧晖恚虺蟪麾荤昏婚魂浑混诨馄阍\
溷珲和豁活伙火获或惑霍货祸劐藿攉嚯夥钬锪镬耠蠖”,
“给击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季\
伎祭剂悸济寄寂计记既忌际妓继纪藉奇系丌亟乩剞佶偈墼芨芰荠萁蒺蕺掎叽咭哜唧岌嵴洎彐\
屐骥畿玑楫殛戟戢赍觊犄齑矶羁嵇稷瘠虮笈笄暨跻跽霁鲚鲫髻麂嘉枷夹佳家加荚颊贾甲钾假\
稼价架驾嫁茄嘏伽郏葭岬浃迦珈戛胛恝铗铪镓痂瘕袷蛱笳袈跏歼监坚尖笺间煎兼肩艰奸缄茧\
检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僭谏谫谮菅蒹搛囝湔蹇謇缣枧\
楗戋戬牮犍毽腱睑锏鹣裥笕翦趼踺鲣鞯虹僵姜将浆江疆蒋桨奖讲匠酱降强茳洚绛缰犟礓耩糨\
豇蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖觉校佼僬艽茭挢噍峤徼姣\
敫皎鹪蛟醮跤鲛揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届偈讦诘卩拮喈\
嗟婕孑桀碣锴疖颉蚧羯鲒骱巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲卺荩堇噤馑廑妗缙\
瑾槿赆觐钅衿矜劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净刭儆阱陉菁獍憬\
泾迳弪婧肼胫腈旌靓炯窘冂迥扃揪究纠玖韭久灸九酒厩救旧臼舅咎就疚僦啾阄柩桕鸠鹫赳鬏\
车柜鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧倨讵苣苴莒掬遽屦琚枸椐榘榉\
橘犋飓钜锔窭裾趄醵踽龃雎瞿鞫捐鹃娟倦眷卷绢圈鄄狷涓桊蠲锩镌隽嚼脚角撅攫抉掘倔爵觉\
决诀绝厥劂谲矍堀蕨噘崛獗孓珏桷橛爝镢蹶觖龟均菌钧军君峻俊竣浚郡骏捃皲筠麇”,
“喀咖卡咯佧咔胩开揩楷凯慨剀垲蒈忾恺铠锎锴槛刊堪勘坎砍看侃凵莰阚戡龛瞰康慷糠扛抗\
亢炕伉闶钪考拷烤靠尻栲犒铐呵坷苛柯棵磕颗科壳咳可渴克刻客课嗑岢恪溘骒缂珂轲氪瞌钶\
铪锞稞疴窠颏蚵蝌髁肯啃垦恳裉坑吭胫铒铿空恐孔控倥崆箜抠口扣寇芤蔻叩眍筘枯哭窟苦酷\
库裤刳堀喾绔骷夸垮挎跨胯侉锞会块筷侩快蒯郐哙狯脍宽款髋匡筐狂框矿眶旷况诓诳邝圹夼\
哐纩贶亏盔岿窥葵奎魁傀馈愧溃馗匮夔隗蒉揆喹喟悝愦逵暌睽聩蝰篑跬坤昆捆困悃阃琨锟醌\
鲲髡括扩廓阔蛞”,
“垃拉喇蜡腊辣啦落剌邋旯砬瘌莱来赖崃徕涞濑赉睐铼癞籁蓝婪栏拦篮阑兰澜谰揽览懒缆烂\
滥岚漤榄斓罱镧褴琅榔狼廊郎朗浪莨蒗啷阆锒稂螂捞劳牢老佬姥酪烙涝落络唠崂栳铑铹痨耢\
醪勒乐了仂叻泐鳓勒雷镭蕾磊累儡垒擂肋类泪羸诔嘞嫘缧檑耒酹棱楞冷塄愣厘梨犁黎篱狸离\
漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩鬲俪俚郦坜苈莅蓠藜呖唳喱猁\
溧澧逦娌嫠骊缡枥栎轹戾砺砬詈罹锂鹂疠疬蛎蜊蠡笠篥粝醴跞雳鲡鳢黧俩联莲连镰廉怜涟帘\
敛脸链恋炼练蔹奁潋濂琏楝殓臁裢裣蠊鲢俩粮凉梁粱良两辆量晾亮谅墚莨椋踉魉撩聊僚疗燎\
寥辽潦了撂镣廖料蓼尥嘹獠寮缭钌鹩列裂烈劣猎冽埒捩咧洌趔躐鬣琳林磷霖临邻鳞淋凛赁吝\
拎蔺啉嶙廪懔遴檩辚膦瞵粼躏麟棱玲菱零龄铃伶羚凌灵陵岭领另令酃苓呤囹泠绫柃棂瓴聆蛉\
翎鲮溜琉榴硫馏留刘瘤流柳六碌陆浏遛骝绺旒熘锍镏鹨鎏咯龙聋咙笼窿隆垄拢陇弄垅茏泷珑\
栊胧砻癃楼娄搂篓漏陋露偻蒌喽嵝镂瘘耧蝼髅六芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆\
戮绿垆撸噜泸渌漉逯璐栌橹轳辂辘贲氇胪镥鸬鹭簏舻鲈驴吕铝侣旅履屡缕虑氯律率滤绿偻捋\
闾榈膂稆褛掠略锊峦挛孪滦卵乱脔娈栾鸾銮抡轮伦仑沦纶论囵铬咯烙萝螺罗逻锣箩骡裸落洛\
骆络倮蠃荦捋摞猡泺漯珞椤脶硌镙瘰雒”,
“呒妈麻玛码蚂马骂嘛吗摩抹唛犸嬷杩蟆埋买麦卖迈脉劢荬霾埋瞒馒蛮满蔓曼慢漫谩墁幔缦\
熳镘颟螨鳗鞔芒茫盲氓忙莽邙漭硭蟒猫茅锚毛矛铆卯茂冒帽貌贸袤茆峁泖瑁昴牦耄旄懋瞀蝥\
蟊髦么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚莓嵋猸浼湄楣镅鹛袂魅门闷们扪焖懑钔萌蒙檬盟\
锰猛梦孟勐甍瞢懵朦礞虻蜢蠓艋艨眯醚靡糜迷谜弥米秘觅泌蜜密幂芈冖谧蘼咪嘧猕汨宓弭纟\
脒祢敉糸縻麋棉眠绵冕免勉娩缅面沔渑湎宀腼眄苗描瞄藐秒渺庙妙喵邈缈缪杪淼眇鹋蔑灭乜\
咩蠛篾民抿皿敏悯闽苠岷闵泯缗玟珉愍黾鳘明螟鸣铭名命冥茗溟暝瞑酩谬缪脉没摸摹蘑模膜\
磨摩魔抹末莫墨默沫漠寞陌万谟茉蓦馍嫫殁镆秣瘼耱貊貘麽谋牟某侔哞缪眸蛑鍪模牟拇牡亩\
姆母墓暮幕募慕木目睦牧穆仫坶苜沐毪钼”,
“拿哪呐钠那娜纳捺肭镎衲氖乃奶耐奈鼐佴艿萘柰南男难喃囡楠腩蝻赧囊攮囔馕曩挠脑恼闹\
淖孬垴呶猱瑙硇铙蛲哪呢讷馁内嫩恁能嗯呢妮霓倪泥尼拟你匿腻逆溺伲坭猊怩昵旎祢慝睨铌\
鲵蔫拈年碾撵捻念廿埝辇黏鲇鲶娘酿鸟尿茑嬲脲袅捏聂孽啮镊镍涅乜陧蘖嗫颞臬蹑您柠狞凝\
宁拧泞佞咛甯聍牛扭钮纽拗狃忸妞脓浓农弄侬哝耨奴努怒弩胬孥驽女恧钕衄虐疟暖娜挪懦糯\
诺傩搦喏锘”,
“哦喔噢欧鸥殴藕呕偶沤区讴怄瓯耦”,
“扒耙啪趴爬帕怕琶葩杷筢拍排牌徘湃派迫俳蒎哌番攀潘盘磐盼畔判叛胖拚丬爿泮贲袢襻蟠\
蹒膀磅镑乓庞旁耪胖彷滂逄螃抛咆刨炮袍跑泡匏狍庖脬疱呸胚培裴赔陪配佩沛辔帔旆锫醅霈\
喷盆湓砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰堋嘭怦蟛辟否坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬\
丕仳陂陴邳郫圮埤鼙芘擗噼庀淠媲纰枇甓睥罴铍癖裨疋蚍蜱貔扁便篇偏片骗谝骈缏犏胼翩蹁\
飘漂瓢票朴剽嘌嫖骠缥殍瞟螵撇瞥丿苤氕拼频贫品聘姘嫔榀牝颦冯乒坪苹萍平凭瓶评屏俜娉\
枰鲆泊繁坡泼颇婆破魄迫粕朴叵陂鄱珀攴攵钋钷皤笸剖裒掊堡暴脯扑铺仆莆葡菩蒲埔朴圃普\
浦谱曝瀑匍噗溥濮璞氆镤镨蹼”,
“稽缉期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫亟\
亓俟圻芑芪荠萋葺蕲嘁屺岐汔淇骐绮琪琦杞桤槭耆欹祺憩碛颀蛴蜞綦綮蹊鳍麒卡掐恰洽葜袷\
髂牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉纤倩佥阡芊芡茜荨掮岍悭慊骞搴褰缱椠\
犍肷愆钤虔箝羟枪呛腔羌墙蔷强抢丬戕嫱樯戗炝锵镪襁蜣羟跄壳橇锹敲悄桥瞧乔侨巧鞘撬翘\
峭俏窍雀劁诮谯荞峤愀憔缲樵硗铫跷鞒切茄且怯窃伽郄惬慊妾挈锲箧趄钦侵亲秦琴勤芹擒禽\
寝沁芩揿吣嗪噙廑檎锓矜覃螓衾亲青轻氢倾卿清擎晴氰情顷请庆苘圊檠磬锖蜻罄箐綮謦鲭黥\
琼穷邛茕穹蛩筇跫銎仇龟秋丘邱球求囚酋泅俅巯犰湫逑遒楸赇虬蚯蝤裘糗鳅趋区蛆曲躯屈驱\
渠取娶龋趣去戌诎劬凵苣蕖蘧岖衢阒璩觑氍朐祛磲鸲癯蛐蠼麴瞿黢圈颧权醛泉全痊拳犬券劝\
诠荃犭悛绻辁畎铨蜷筌鬈缺炔瘸却鹊榷确雀阕阙悫鼽裙群逡麇”,
“然燃冉染苒蚺髯瓤壤攘嚷让禳穰饶扰绕荛娆桡惹热喏壬仁人忍韧任认刃妊纫亻仞荏葚饪轫\
稔衽扔仍日戎茸蓉荣融熔溶容绒冗嵘狨榕肜蝾揉柔肉糅蹂鞣茹蠕儒孺如辱乳汝入褥蓐薷嚅洳\
溽濡缛铷襦颥软阮朊蕊瑞锐芮蕤枘睿蚋闰润若弱偌箬”,
“撒洒萨卅仨脎飒腮鳃塞赛噻三叁伞散馓毵糁桑嗓丧搡磉颡搔骚扫嫂埽缫臊瘙鳋塞瑟色涩啬\
铯穑森僧莎砂杀刹沙纱傻啥煞杉厦唼歃铩痧裟霎鲨色筛晒掺单珊苫杉山删煽衫闪陕擅赡膳善\
汕扇缮栅剡讪鄯埏芟彡潸姗嬗骟膻禅钐疝蟮舢跚鳝髟墒伤商赏晌上尚裳垧绱殇熵觞鞘梢捎稍\
烧芍勺韶少哨邵绍劭苕潲杓蛸筲艄奢赊蛇舌舍赦摄射慑涉社设折厍佘揲猞滠歙畲铊麝谁参砷\
申呻伸身深娠绅神沈审婶甚肾慎渗什诜谂莘葚哂渖椹胂矧蜃乘声生甥牲升绳省盛剩胜圣嵊渑\
晟眚笙匙师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬\
适仕侍释饰氏市恃室视试似殖峙谥埘莳蓍弑饣轼贳炻礻铈铊螫舐筮酾豕鲥鲺收手首守寿授售\
受瘦兽扌狩绶艏蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕\
丨倏塾菽摅沭澍姝纾毹腧殳镯秫疋刷耍唰率摔衰甩帅蟀栓拴闩涮霜双爽泷孀水睡税说氵吮瞬\
顺舜数说硕朔烁蒴搠妁槊铄斯撕嘶思私司丝死肆寺嗣四伺似饲巳厮俟兕厶咝饣汜泗澌姒驷缌\
祀锶鸶耜蛳笥松耸怂颂送宋讼诵凇菘崧嵩忪悚淞竦搜艘擞嗽叟薮嗖嗾馊溲飕瞍锼螋苏酥俗素\
速粟僳塑溯宿诉肃缩夙谡蔌嗉愫涑簌觫稣酸蒜算狻尿虽隋随绥髓碎岁穗遂隧祟谇荽濉邃燧眭\
睢孙损笋荪狲飧榫隼莎蓑梭唆缩琐索锁所唢嗦嗍娑桫挲睃羧”,
“塌他它她塔獭挞蹋踏拓闼溻漯遢榻沓铊趿鳎胎苔抬台泰酞太态汰邰薹骀肽炱钛跆鲐弹坍摊\
贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭郯澹昙赕忐钽锬镡覃汤塘搪堂棠膛唐糖倘躺淌趟烫傥帑\
饧溏瑭樘铛铴镗耥螗螳羰醣掏涛滔绦萄桃逃淘陶讨套鼗叨啕洮韬焘饕特忒忑铽藤腾疼誊滕梯\
剔踢锑提题蹄啼体替嚏惕涕剃屉倜荑悌逖绨缇鹈裼醍天添填田甜恬舔腆掭忝阗殄畋钿锘调挑\
条迢眺跳佻苕祧铫窕蜩笤粜龆鲦髫贴铁帖萜锇餮厅听烃汀廷停亭庭挺艇莛葶婷梃铤蜓霆通桐\
酮瞳同铜彤童桶捅筒统痛佟僮仝垌茼嗵峒恸潼砼偷投头透亠钭骰凸秃突图徒途涂屠土吐兔堍\
荼菟钍酴湍团抟彖疃推颓腿蜕褪退煺囤褪吞屯臀氽饨暾豚说拖托脱鸵陀驮驼椭妥拓唾乇佗坨\
庹沱柝柁橐砣铊箨酡跎鼍”,
“挖哇蛙洼娃瓦袜佤娲腽歪外崴蔓豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕剜芄莞菀纨绾琬脘\
畹蜿鞔汪王亡枉网往旺望忘妄罔尢惘辋魍威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚\
味畏胃喂魏位渭谓尉慰卫偎诿隈隗圩葳薇囗帏帷崴嵬猥猬闱沩洧涠逶娓玮韪軎炜煨痿艉鲔瘟\
温蚊文闻纹吻稳紊问刎阌汶玟璺雯嗡翁瓮蓊蕹挝蜗涡窝我斡卧握沃倭莴喔幄渥肟硪龌恶巫呜\
钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误兀仵阢邬圬芴唔庑怃忤浯寤迕\
妩婺骛杌牾於焐鹉鹜痦蜈鋈鼯”,
“昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细匚僖兮隰\
郗茜菥葸蓰奚唏徙饩阋浠淅屣嬉玺樨曦觋欷歙熹禊禧皙穸裼蜥螅蟋舄舾羲粞翕醯蹊鼷瞎虾匣\
霞辖暇峡侠狭下厦夏吓呷狎遐瑕柙硖罅黠铣洗掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺\
馅羡宪陷限线冼苋莶藓岘猃暹娴氙燹祆鹇痃痫蚬筅籼酰跣跹霰降相厢镶香箱襄湘乡翔祥详想\
响享项巷橡像向象芗葙饷庠骧缃蟓鲞飨萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效哓潇逍骁绡\
枭枵蛸筱箫魈解楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑血叶偕亵勰燮薤撷獬廨渫瀣\
邂绁缬榭榍颉躞鲑骱薪芯锌欣辛新忻心信衅囟馨莘忄昕歆镡鑫省星腥猩惺兴刑型形邢行醒幸\
杏性姓陉荇荥擤饧悻硎兄凶胸匈汹雄熊芎臭宿休修羞朽嗅锈秀袖绣咻岫馐庥溴鸺貅髹墟戌需\
虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续吁诩勖圩蓿洫浒溆顼栩煦盱胥糈醑券轩喧宣悬旋玄选癣\
眩绚儇谖萱揎泫渲漩璇楦暄炫煊碹铉镟削靴薛学穴雪血谑噱泶踅鳕浚勋熏循旬询寻驯巡殉汛\
训讯逊迅巽郇埙荀荨蕈薰峋徇獯恂洵浔曛窨醺鲟”,
“压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶轧伢垭揠岈迓娅琊桠氩砑睚痖疋铅焉咽阉烟淹盐严研\
蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殷厣赝剡俨偃兖讠谳阽郾鄢芫菸崦\
恹闫阏湮滟妍嫣琰檐晏胭腌焱罨筵酽魇餍鼹鼽殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾徉怏泱\
炀烊恙蛘鞅侥啮疟邀腰妖瑶摇尧遥窑谣姚咬舀药要耀钥夭爻吆崤崾徭幺珧杳轺曜肴铫鹞窈繇\
鳐邪咽椰噎耶爷野冶也页掖业叶曳腋夜液盅靥谒邺揶琊晔烨铘艾尾一壹医揖铱依伊衣颐夷遗\
移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼\
翌绎刈劓佚佾诒阝圯埸懿苡荑薏弈奕挹弋呓咦咿噫峄嶷猗饴怿怡悒漪迤驿缢殪轶贻欹旖熠眙\
钇铊镒镱痍瘗癔翊衤蜴舣羿翳酏黟茵荫因殷音阴姻吟银淫寅饮尹引隐印胤鄞廴垠堙茚吲喑狺\
夤洇湮氤铟瘾窨蚓霪龈英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映嬴郢茔荥莺萦蓥撄嘤膺滢潆\
瀛瑛璎楹媵鹦瘿颍罂哟育唷拥佣臃痈庸雍踊蛹咏泳涌永恿勇用俑壅墉喁慵邕镛甬鳙饔幽优悠\
忧尤由邮铀犹油游酉有友右佑釉诱又幼卣攸侑莠莜莸尢呦囿宥柚猷牖铕疣蚰蚴蝣蝤繇鱿黝鼬\
蔚尉迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育\
誉浴寓裕预豫驭禺毓伛俣谀谕萸菀蓣揄圄圉嵛狳饫馀庾阈鬻妪妤纡瑜昱觎腴欤於煜熨燠肀聿\
钰鹆鹬瘐瘀窬窳蜮蝓竽臾舁雩龉鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院塬芫掾圜沅媛\
瑗橼爰眢鸢螈箢鼋乐说曰约越跃钥岳粤月悦阅龠哕瀹栎樾刖钺员耘云郧匀陨允运蕴酝晕韵孕\
郓芸狁恽愠纭韫殒昀氲熨筠”,
“匝砸杂扎咋拶咂栽哉灾宰载再在崽甾咱攒暂赞拶瓒昝簪糌趱錾藏赃脏葬驵臧遭糟凿藻枣早\
澡蚤躁噪造皂灶燥唣责择则泽咋仄赜啧帻迮昃笮箦舴贼怎谮增憎曾赠缯甑罾锃查扎喳渣札轧\
铡闸眨栅榨咋乍炸诈柞揸吒咤哳喋楂砟痄蚱龃齄翟择摘斋宅窄债寨砦瘵颤瞻毡詹粘沾盏斩辗\
崭展蘸栈占战站湛绽谵搌骣旃长樟章彰漳张掌涨杖丈帐账仗胀瘴障仉鄣幛嶂獐嫜璋蟑朝招昭\
找沼赵照罩兆肇召爪着诏啁棹钊笊遮折哲蛰辙者锗蔗这浙着谪摺柘辄磔鹧褶蜇赭珍斟真甄砧\
臻贞针侦枕疹诊震振镇阵帧圳蓁浈溱缜桢椹榛轸赈胗朕祯畛稹鸩箴蒸挣睁征狰争怔整拯正政\
症郑证诤峥徵钲铮筝鲭识芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至\
致置帜峙制智秩稚质炙痔滞治窒卮陟郅埴芷摭帙徵夂忮彘咫骘栉枳栀桎轵轾贽胝膣祉祗黹雉\
鸷痣蛭絷酯跖踬踯豸觯中盅忠钟衷终种肿重仲众冢忪锺螽舯踵舟周州洲诌粥轴肘帚咒皱宙昼\
骤荮啁妯纣绉胄碡籀繇酎属术珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻丶\
伫侏邾苎茱洙渚潴杼槠橥炷铢疰瘃褚竺箸舳翥躅麈挝抓爪拽转传专砖转撰赚篆啭馔沌颛幢桩\
庄装妆撞壮状奘戆椎锥追赘坠缀惴骓缒隹谆准饨肫窀捉拙卓桌琢茁酌啄着灼浊倬诼擢浞涿濯\
焯禚斫镯吱兹咨资姿滋淄孜紫仔籽滓子自渍字谘茈嵫姊孳缁梓辎赀恣眦锱秭耔笫粢趑觜訾龇\
鲻髭鬃棕踪宗综总纵偬枞腙粽邹走奏揍诹陬鄹驺鲰租足卒族祖诅阻组俎菹镞钻纂攥缵躜嘴醉\
最罪蕞觜尊遵撙樽鳟撮琢昨左佐柞做作坐座阼唑嘬怍胙祚砟酢”
);

var PinYin1st = “ABCDEFGHJKLMNOPQRSTWXYZ”;

function get1stAlpha(cc)
{
for (var i = 0; i < 23; i++) {
if (PinYin1[i].indexOf(cc) > 0) {
return PinYin1st.charAt(i);
}
}
return null;
}

使用的时候,只需要调用get1stAlpha(cc);就行了,其中cc是中文字符,如果字符不在数组中,将返回一个null值。

多音字就不考虑了。

双目运算符的教训

星期日, 11月 23rd, 2008

昨天在UE里写javascript代码,在浏览器里执行的时候,老是报告某行有运行时错误,把那附近的代码逐行注释,最后终于发现是一个双目运算符写错了。

我把“+=” 中间多写了一个空格:“+ =”,导致IE的javascript解释器不工作了。

我记得以前也犯过这样的错误,看来确实要找个好用的javascipt编辑器了。才能避免白花这样的调试时间。

另一个教训是,javascipt里面的字符串,是不赞成使用数组的方式去取串中的字符的。javascript提供了一个可用的方法:

String.charAt(index)。数组成员的获取还是要先定义成Array,然后再用[ ]访问。