replace (searchValue, replaceValue)

2010-03-02 17:27

字符串对象的replace方法作查找替换操作非常好用。

语 法
stringObject.replace(regexp,replacement)

regexp – 必需。规定了要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement – 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

简单使用:

var s = 'he is a god girl!';
var pattern = /he/g;
alert(s.replace(pattern,"she"));

稍微复杂一点的使用:(回溯引用)

var s = 'i like GFW';
var pattern = /(GFW)/g;
alert(s.replace(pattern,"the great $1"));

当传入的替换文本参数为字符串时它还接受第三个参数

var str = "Apples are round, and apples are juicy.";
alert(str.replace("apples", "oranges", "gi"));

其实,这些都不是我想说的,我想说replacement为函数的情况。

ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

根据以上说明,replace()可以通过为替换函数传入参数完成一些更为复杂的功能。

如将所有单词首字母转换成大写:

var s = "the great gFW";
var pattern = /\b\w+\b/g;
alert(s.replace(pattern,function(w){return w.substring(0,1).toUpperCase()+w.substring(1)}))

多传几个参数试试:

var s = "AAAbbbZZZ AAAcccZZZ AAAdddZZZ AAAeeeZZZ hijklmnopqrstuvwxy";
var pattern = /\b(AAA)(\w+)(ZZZ)\b/g;
alert(s.replace(pattern,function(w,w1,w2,w3,i){return i+w1+w2+w3+i}));

就这样了?可以继续传入参数吗?再试:

var s = "AAAbbbZZZ AAAcccZZZ AAAdddZZZ AAAeeeZZZ hijklmnopqrstuvwxy";
var pattern = /\b(AAA)(\w+)(ZZZ)\b/g;
s.replace(pattern,function(w,w1,w2,w3,i,x){alert(x)});

居然还有~···不过这个值从何而来我也迷惑了~···还可以传参数吗?再试!的确不可以了。

函数中第一个参数是匹配模式的字符串,接下来的参数是匹配模式中子表达式的字符串,数量与子表达式个数一致。当所有模式匹配参数都传递完后,后一个参数为匹配在字符串中出现的位置。根据这个特性可以发散出很多高级的应用。

饭否数据已成功导出

2010-03-02 14:34

喜剧的是我是昨天从网易微博上得知饭否可以导出用户数据了,地址是这个http://www.fanfoublog.com/。昨晚7点多开始就登录提交,提示正在打包,让我F5,直到今天中午才打包完成。饭否也挺不容易的。打包的数据包括消息、私信、照片、收藏。

我的数据:

  • 关注:57
  • 被关注:58
  • 消息:1372
    最早的一条:AE,AI,AS3学习中~··· 2007-08-06 21:36 通过网页 (应该有更早的,被我删了)
    最晚的一条:困磕睡! 2010-01-27 23:49 通过短信(饭否虽然被和谐N久了,其实一直可以通过短信发消息的)
  • 照片:0
  • 收藏:9
  • 私信:50

尽管饭否强调:“能导出资料和饭否能否恢复、何时恢复之间并没有必然联系”,但是恐怕没有多少人再对饭否抱啥希望了,九死一生了,用户也流失殆尽了。就这样了,如今微博已成为各大门户的标配,我也放弃饭否了。

开工!

2010-02-21 12:49

上班头一天,6点起床接MM。火车晚点,等到8点,还好上班没迟到。09年现在想想啥事没干就过了,很多时间安排不当,做了很多无谓的事情。10年,希望工作上更用心一些,主要还是积累。

广东这边有风俗,结了婚的人要给未婚的人派发红包。我也跟着领了几个,可惜含金量太少了,后面我都懒得跑了~···

这个年过得也挺没意思的,在家宅了10天,广州天气也不好,懒的动。起床时间越来越晚,后面几天我是中午一点多才起床,午饭完了就准备晚饭,时间也过得很快。

10年,好好干工作!亲人朋友,开心、健康!

总一下结

2010-01-14 16:18

09年过去都快半月了,按照国际惯例,这个总结是要写的,上个星期就在酝酿。写了一千多字的草稿,发现太JJYY了,所以也没发~···本来想叙事,但是我还是来抒下情吧~···

六月份换了新的工作,我所在的部门在Q3、Q4项目都非常多,所以加班也是常事,加到凌晨也有好几次,虽然我不情愿。项目需求的修改总是再一,再二,再三再四五六七八九十…每次都搞得心神交瘁。但是对于这样的现状,有时候我根本就无法改变,而改变就意味着要付出更多,而付出并不一定会有回报,即使有回报也并不一定有多少立竿见影的效果,所以就忍着,大家都忍着……于是,我们就更淡定了!后来在《遇见未知的自己》里看到一句话“改变能改变的,接受不能改变的”!

为什么我会极度讨厌加班?因为工作不是我的全部,虽然工作也是兴趣之一,这已经非常幸运了。但是除此之外我们还会有很多的事情,有很多的兴趣爱好需要时间去经营。同时也有很多的人需要我们去关心,与工作比起来,其实工作之外还有更多更重要的事情。所以,不加班!当然,如果加班已成事实,我们就开心的快速加完班回家吧,毕竟这是我们不能改变的事实了。

大家对所处的环境、制度多多少少都会有一些抱怨,认为不合理,自己的这样的环境中无法展开手脚。怎么办?首先当然尽量地去找相关的人沟通,不要埋在心里。如果沟通不成那就算了吧,自己该干啥干啥,一般情况下,你不要试图凭一己之力去改变什么,一时头脑发热只会让你更狼狈。

此外,我们还应该一颗包容的心,要尽量理性客观地分析我们周遭的人和事。譬如韩剧,现在电视节目,黄金时段播韩剧的频道还是很多,我偶尔也会看上一看,然后和我同住的大学同学就会很鄙视地对我说“靠,你怎么在看韩剧?”。这时候我一般情况下不会睬他,因为我可能需要和他解释太多,完全没有这个必要。首先他们根本不清楚我究竟在看什么,只要人家是“思米达”,在他眼里都是矫情的偶像剧;其次即使是“矫情的偶像剧”,其实你也没必要深恶痛绝,“存在即合理”这句话还是有一些道理的;再者,即使他是“毫无营养的矫情的偶像剧”,我也只是下班后坐那打发时间而已,关你毛事?!对此类纯属原则而非是非问题,大可不必妄加指责!90后亦然。

再说承诺。承诺,每个人都要小心使用,不要轻下承诺。做好了,皆大欢喜。没做到,可能就反目成仇了。很多人对承诺基缺乏本的重视,总是朝令夕改,然后还不以为然,不知悔改。这是相当令人厌恶的,说的严重点这种行为完全是诚信的丧失和缺乏责任心的表现。故,请勿轻下承诺,如若承诺,理应排除万难达成。

——————————————激情穿越——————————————

09年初买了盆花-人参榕,历经“九九八十一难”后终究还是没有熬过来,挂掉了。十一前夕又买了一大盆不知名的绿叶植物,经历了几次低温侵袭后,叶尖开始干枯,令人担忧。

09年信誓旦旦,要在厨艺上有所突破,可时过一年,我还没掌握水煮鱼的精髓。

40D快门次数才3K不到,而且面对公司同学们的长枪短炮,套头机只能当个卡片机使了。明年去买个小痰盂吧,说了好久了。

这两天google闹腾的厉害,我不想多说啥。我只想有钱就好了,有钱就移民。

玩转EditPlus

2009-12-23 20:55

EditPlus(EP)帮助手册中列出了EP的主要功能:

  • 语法高亮
  • Internet功能
  • HTML工具栏
  • 文档选择器
  • 用户工具和帮助文件
  • 自动完成
  • 素材文本窗口
  • 文档模板
  • 其他功能

其中“语法高亮”,“自动完成”和“文档模板”在EP中非常灵活,用户皆可根据自己需要进行配置。EP默认支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript 和 VBScript的语法高亮显示,基本上无需再做过多设置。而“自动完成”和“文档模板”默认支持有限,而且可能并不符合个人日常的一些编码习惯,那么则需要我们自己根据习惯进行配置,才能得心应手。

自动完成

自定义自动完成功能可分为两步:1.编写自动完成文件;2.指定关联路径。

#TITLE=CSS
;EditPlus Auto-completion file v1.0 written by wondger(http://omiga.org).
;This file is provided as a default auto-completion file for CSS.
#CASE=n
#T=reset
/*reset*/
body,h1,h2,h3,h4,h5,h6,ul,ol,p,dl,dt,dd,th,td{margin:0; padding:0;}
table{border-collapse:collapse;}
li{list-style:none;}
em{font-style:normal;}
img{border:none;}
a img{vertical-algin:top;}
/*reset*/
#T={
{^!}
#T=m
margin:^!px;
#T=ma
margin:0 auto;^!
#T=mt
margin-top:^!px;
#T=mr
margin-right:^!px;
#T=mb
margin-bottom:^!px;
#T=ml
margin-left:^!px;

以上为一段CSS自动完成文件代码。自动完成文件每个语句必须以“#”开头。

  • #TITLE – 为自动完成文件标题
  • #CASE – 指定是否区分大小写。‘y’表示是,‘n’表示否。默认值是‘n’。
  • 每个自动完成片段以“#t=title”形式的开始。title是你要你扩展的缩写词,换行后开始匹配自动完成文本,直到遇到“#”符号。如:
#T=m
margin:^!px;
  • ^! – 指定每一次自动完成后光标的停留位置。
  • ^ – 转义字符,如果需要在自动完成文本中插入“^”或“#”则需要先进行转义:“^^”,“^#”。

自动完成文件编写完成后,保存为.acp文件在任一文件目录即可。

随后打开“工具”菜单-“首选项”-“文件”-“设置和语法”,为相关文件类型设置自动完成文件,“确定”完成设置。

ep_acp

自此自动完成功能配置完成,在对应类型的文件编码中,空格触发自动完成功能。当然,你可以通过Shift 键或Window徽标键来暂时禁止此功能。

文档模板

我们日常处理的不论是HTML文档,还是CSS,JavaScript文档,都存在一定的文档规范,比如版权信息,title,keywords,description,或者一些固定的文档结构。我们显然不希望每次新建这些文档的同时,都需要重新录入这些代码,即使是“Ctrl+v”也还是有损效率。那么EP的“文档模板”则可帮助我们完成所有的工作。

自定义“文档模板”也分为两步:1.编写文档模板,2.关联模板

编写文档模板非常简单,无任何语法。比如,我需要一个HTML文档模板,那么新建一个HTML文档如下。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>title | wondger@gmail.com/</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name="robots" content="all" />
<meta name="author" content="wondger" />
<style type="text/css">

</style>
</head>
<body>

</body>
<script type="text/javascript">
//<![CDATA[

//]]>
</script>
</html>

根据个人需要编写模板完成后,保存为.html在任一文件目录。

随后打开“工具”菜单-“首选项”-“文件”-“模板”,在模板列表中选择相应模板关联模板文件即可。模板可以是默认模板,也可以新建模板(MY_PAGE)。

ep_tp

这样便完成“文档模板”设置,现在文件新建菜单中便可选择新建该模板文档。(其实你还可以自定义新建文档快捷键,稍后介绍)

ep_new

其他功能

自定义快捷键

EP所有操作的快捷键皆在“工具”菜单-“首选项”-“工具”-“键盘”中进行设置。我们以新建模板文档为例。

ep_hotkey

在“文件”菜单的“命令”中并不存在新建的“MY_PAGE”模板,那么如何自定义“新建MY_PAGE文档”的快捷键?其实这里存在一个对应关系,在“文件”菜单的“命令”列表中存在一个“模板1”-“模板20”的选项列表,这就对应于我们的自定义模板。

ep_md

在EP的模板列表中默认的HTML和XHTML模板无法删除,那么我们自定义的模板则按照从上到下的顺序为“模板1”、“模板2”…(其实我在想第21个自定义模板怎么办?-_-!)。这里“MY_PAGE”对应于“模板5”,在设置快捷键的时候会提示该快捷键是否已定义,如果分配已定义的快捷键,那么较早的定义会被覆盖。一个命令可以定义多个快捷键。

自动保存

EP具有定时自动保存的功能,保存间隔时间可在“工具”菜单-“首选项”-“文件”中进行设置。

保存时创建备份

EP默认会在保存时自动创建一个.bak备份文件。备份文件存放目录,后缀名皆可自定义。

HTML工具栏

ep_toolbar

EP具有强大的HTML工具栏,具有插入图像、选择颜色、插入特殊字符、表格、段落、列表、注释、表单等丰富功能。这个HTML工具同时也是可以在“工具”菜单-“首选项”-“工具”-“工具栏”自定义。

OK,以上内容为个人认为是在EP使用中较多涉及的一些功能。除此之外关于软件本身的一些设置,如字体,颜色,背景,布局等,大家就慢慢折腾吧!

Page 1 of 4512345678910...末页 »