zoukankan      html  css  js  c++  java
  • [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,功能基本上介绍完了,但是感觉很乱,因为在写文章时跑了几次卫生间,请大家谅解。累了,喝了正气水好像才有点回过神来了!



  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    《EffectiveJava中文第二版》 高清PDF下载
    《MoreEffectiveC++中文版》 pdf 下载
    《啊哈c语言》 高清 PDF 下载
  • 原文地址:https://www.cnblogs.com/xdotnet/p/prototype_getstarting_stringextend.html
Copyright © 2011-2022 走看看