下面介紹Prototype對(duì)String對(duì)象的擴(kuò)展部分:
這部分主要為string對(duì)象添加了幾個(gè)很有用的方法:
strip(): 去掉字符串兩邊的空白, 例如" jj ".strip()返回"jj"
stripTags():去掉字符串中的html標(biāo)簽
stripScripts(): 去掉字符串中的javascript代碼段
extractScripts(): 返回字符串中的javascript代碼,返回?cái)?shù)組
evalScripts(): 執(zhí)行字符串中的javascript代碼
escapeHTML():將字符串中的html代碼轉(zhuǎn)換為可以直接顯示的格式, 例如將< 轉(zhuǎn)化為<,在ie6中有bug,執(zhí)行這個(gè)操作返回的字符串,將多個(gè)連在一起的空白變成了一個(gè),所以很多換行什么的都被去掉了
unescapeHTML(): escapeHTML的反向過程
truncate(length, truncation): 截?cái)?,例?abcdefghigkl".truncate(10)返回abcdefg..., truncation默認(rèn)為"..." toQueryParams(separator)/parseQuery(separator):將一個(gè)querystring轉(zhuǎn)化為一個(gè)hash表(其實(shí)是一個(gè)對(duì)象,在javascript中對(duì)象可以當(dāng)成hash表來用,因?yàn)閷?duì)象的屬性或方法可以通過object[propertyName]來訪問)
toArray(): return this.split(''), 轉(zhuǎn)化為一個(gè)字符數(shù)組
camelize(): 將background-color的形式轉(zhuǎn)化為backgroundColor形式,用在style/css中
capitalize(): 返回一個(gè)首字母大寫的字符串
inspect(useDoubleQuotes): 返回字符串的表示形式, 例如"sdfj\"sfa".inspect() 返回 “'sdfj"sfa'”
gsub(pattern, replacement):pattern是一個(gè)正則表達(dá)式,replacement是一個(gè)函數(shù)(或者是一個(gè)template字符串),對(duì)于字符串中每個(gè)匹配pattern的部分使用replacement處理,然后將replacement返回的值將原來匹配的部分替換掉,例如"skdjfAsfdjkAdk".gsub(/A/,function(match){return match[0].toLowerCase()}), 將字符串所有的A轉(zhuǎn)化為a, 注意pattern中不要添加g選項(xiàng),因?yàn)間sub會(huì)遞歸的執(zhí)行match方法
sub(pattern, replacement, count) :gsub的另一種形式,不過可以設(shè)置執(zhí)行的次數(shù)
scan(pattern, iterator): 跟gsub差不多,但是返回的是字符串本身,也就是說對(duì)于pattern中的每個(gè)匹配執(zhí)行iterator,但是不返回替換的字符串"skdjfAsfdjkAdk".gsub(/A/,function(){alert 'have a A'})
underscore(): 'borderBottomWidth'.underscore() -> 'border_bottom_width'
dasherize(): 'Hello_World'.dasherize() -> 'Hello-World'
Template模板類:
使用方法:
var template = new Template(replacement, pattern);
template.evaluate(object) 有點(diǎn)像php中的模板,默認(rèn)(沒有提供pattern)將{propertyName}形式的東西替換了object的屬性值