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

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2007/04/08/prototype_getstarting_stringextend.html,如需转载请自行联系原作者

相关文章
|
5月前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
53 2
|
5月前
|
存储 JavaScript 前端开发
在JavaScript中,对象和数组是如何进行扩展的?
在JavaScript中,对象和数组是如何进行扩展的?
34 4
|
5天前
|
JavaScript 前端开发 Python
JavaScript写个.ts视频文件Url生成器,使用了string.padStart
JavaScript写个.ts视频文件Url生成器,使用了string.padStart
|
9天前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
23 2
|
2月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
7天前
|
JavaScript 前端开发
今天被JavaScript的String型和数字型的+运算撞了一下腰。
今天被JavaScript的String型和数字型的+运算撞了一下腰。
|
2月前
|
前端开发 JavaScript 程序员
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
|
2月前
|
JavaScript 前端开发
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
这篇文章介绍了JavaScript中的数组、Date对象、Math对象以及包装类(String、Number、Boolean),并详细讲解了数组的创建、方法(如forEach、push、pop、unshift、slice、splice)和遍历操作,以及工厂方法创建对象和原型对象的概念。
JavaScript基础&实战(5)js中的数组、forEach遍历、Date对象、Math、String对象
|
4月前
|
JavaScript 前端开发 索引
JavaScript有7个数据类型:Number, String, Boolean, Null, Undefined, Symbol(BES6)和BigInt(ES10)组成基本类型
【6月更文挑战第25天】JavaScript有7个数据类型:Number, String, Boolean, Null, Undefined, Symbol(BES6)和BigInt(ES10)组成基本类型,而Object包括Array、Function等是引用类型。Objects可以包含键值对,Array是特殊的Object。Functions也是对象。`null`和`undefined`被视为特殊的原始值。
42 1
|
4月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
47 2
下一篇
无影云桌面