本博客已经转移至www.mozlite.com,可能不会及时更新和关注留言记录,mvc请加群88794325(已满),8781765ASP.NET(MVC)讨论二群

[Prototype.js1.5.1_rc2]prototype.js之String的扩展

  在上一编文章中介绍了几个类的扩展以及类的创建继承等,今天我们来看看 Prototype.js中对String的扩展 ,这在我们的项目中肯定会经常用到!有好多朋(博)友推荐我去用jQuery类库,再此表示感谢,jQuery比Prototype.js会小很多,未编 译也没有Prototype.js大,编译后才20多K。但是每一个类库都有他存在的理由,各有个的优点,既然我先选中了Prototype.js这个类 库我想就必须坚持下去,做事要有始有终,而且我觉得Prototype.js更适合.NET的开发人员。由于我不是专业的写作高手,在这里只是随便解说一 下,以便以后回头观望时能够立刻想起来他的功能,至于他是怎么实现的我想没什么必要在这里说明。本人水平有限时抱着一种学习的态度来写这篇随便,如果有什 么不对或不好的地方请大家能够多多谅解。OK,废话不多说了,让我们切入正题,让我们来感受一下Prototype.js带给我们的温暖吧!

  从上一篇文章中我们知道,Object.extend()方法是实现JS面向对象继承的,它的机理就是把类的所有属性复制到当前类中,这样当前类就有了基 类的所有属性。在String扩展也是利用这个方法,首先定义了String.interpret(value)的方法:如果value为null返回 ’’,否则返回当前value的String对象;另外一个是特殊字符串(转义字符)specialChar属性。

  在C#中我们在字符串操作的时候经常都会用到Replace()的正则替换,在Prototype.js中也对String进行了扩展,方法名称为: String.gsub(pattern, replacement)。Pattern指的是匹配的正则表达式,这里值得注意的是,不要在//后加g,因为它是利用迭代来完成整个替换过程的; replacement不用说都知道是将要替换的字符串。例如:"abcdeabdde".gsub(/ab/,function(match) {return "$$";});è$$cde$$dde。

  String.sub(pattern,replacement,count)方法和gsub差不多,不同的是gsub把整个字符串的所有匹配项全给替换了,而这里的count干好可以限制一下替换的次数,默认为1。

  String.scan(pattern,iterator)方法和上面两个方法有点相似,但是这个方法是返回字符串本身,而不是匹配替换后的字符串;如 果字符串匹配则执行iterator方法。如:var str="abcdeabdde".scan(/abc/,function(macth){alert( "$a$b$c---"+macth);});则str="abcdeabdde";而会弹出”$a$b$c-abc”。

  当我们需要截取字符串时,可以用String.truncate(length, truncation),超过的部分用truncation字符串补上,默认为:’…’。在网站的标题列表中经常会用到这个,不过通过CSS样式也能达到效果,在编程的情况下就只能用JS了。

  String.strip,String.striptag,String.stripScript三个方法都是过滤字符串的:第一个是过滤字符串两端的 空格相当于C#中String.Trim();第二个是过滤HTML标签;第三个是过滤Script标签里的代码。 String.extractScripts返回字符串中JS代码,以数组的形式返回;String.evalScripts执行字符串中的 javascript代码;String.escapeHTML将HTML转换为字符,如:’&’à’&’,’’à’& nbsp;’;String.unescapeHTML为String.escapeHTML的反向转换;toQueryParams或 parseQuery返回查询字符串的Hashtable,用key取其指犹如C#中的Request.QueryString;toArray将字符串 转换为数组。

  每次写随笔时都很容易中途放弃,但是放弃之后又会有点愧疚,其实写到这里我就快要达到我的底线了,但是今天我要狠下心来写完这篇随笔。接下来我们看看 succ,这个方法很有意思将字符串中的最后一个字符转换为Unicode字符集的下一个字符,如:最后一个为a=>b;6=>7;,= >-;times循环N次,也就是添加N个连续的字符串;camelize去掉"-"字符,并将"-"后的第一个字符转换为大写的 "camelize"格式的字符串,例如:var str=’hello-word’;var returnvalue= str.camelize();则returnvalue为’helloWorld’; capitalize将当前字符串的首字母大写并返回;underscore将camelize格式的字符串转换为下划线格式,例如:var str=’helloWorld’;str.underscore()则返回的字符串为:’hello_world’; dasherize将所有"_"转换为"-";inspect/ toJSON返回格式的字符串。

  Include表示字符串中是否包含argument中的字符;startsWith/endsWith大家都知道是什么意思,empty判断是否为’’;blank判断字符串是否为空''或只包含空格。

  OK,功能基本上介绍完了,但是感觉很乱,因为在写文章时跑了几次卫生间,请大家谅解。累了,喝了正气水好像才有点回过神来了!



posted @ 2007-04-08 22:09  网魂小兵  Views(4395)  Comments(6Edit  收藏  举报