资源描述:
《JavaScript中split与join函数的进阶使用技巧_javascript技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JavaScript中split与join函数的进阶使用技巧Javascript拥有两个相当强大而J1受开发者喜爱的函数:split与join俩对立的函数。这俩函数能让string与anray两种类型互换,也就是数组能被序列化为字符串,反之亦然。我们能把这俩函数发挥得淋漓尽致。下面就来探索里面的一些有趣的应用,首先介绍一下这两个函数:String.prototype,split(separator,limit)separator把字符串分割为数组,口J选参数limit定义了生成数组的最人1engt
2、ho〃85@@86@@53〃・splitC;//['85',‘86','53'];"banana".split();//[^banana^];//(thankspeter(-:)"president,senate,house",split,2);//[^president〃,〃senate〃]Array,prototype,join(separator)可选参数separator把数组转换为一个字符串。如果不提供separator,那么就会把逗号做为这个参数值(就跟数组的toString函数一样)
3、。["slugs",〃sna订s〃,"puppydog,stails^].join('and');//"slugsandsnai1sandpuppydog'stails"VGiants',4,'Rangers',1]・join('');//"Giants4Rangers1〃[1962,1989,2002,2010].join();下面来看这些应用:replaceAl1这个简单的函数不像原生的replace函数,它能作为一个全局的子字符串替换而不需要使用正则表达式。String,prototype.
4、replaceAl1=function(find,replaceWith){returnthis.split(find).join(replaceWith);}"themanandtheplan"・replaceAll('the','a');//〃amanandapla对于小的字符串,它比单个字符替换的原生函数性能要弱一些(这里指的是正则表达式的两个额外的函数),但是在mozilla下,如果这个字符超过2个或3个字符话,这种使用函数要比止则表达式运行得更快。occurences该函数能取到子字符串
5、匹配的个数。而口这种函数很直接不需要止则。String.prototype.occurences=function(find,matchCase){vartext=this;matchCase
6、
7、(find=find.toLowcrCasc(),text=text.toLowcrCasc());returntext.split(find)・length-l;}document.body.innerllTML.occurences("div");//googlehomepagehas114docum
8、ent・body.innerHTML・occurenccs(,,/div,z);//googlehomepagehas57"Englandengagesitsengineers'7.occurrences(/zeng,z,true);//2repeat该函数是从prototype,js借鉴而來:String.prototype.repeat=function(times){returnnewArray(times+1).join(this);}"go"・repeat(3)+"Giemts!";//
9、"gogogoGiants!"它的美妙Z处就在于join函数的使用。焦点就在这个separator参数值,然后这个基础数组仅仅包含了一些未定义的value值。为了史清楚的说明这点,我们來重造一下上面的实例:[undefined,undefined,undefined,undefinecl].join("go“)+"Giants记住在join之前毎个数组元素都会转换为一个字符串(这里就是一个空字符串)。这个repeat函数的应用是通过数组字面量定义数组的为数不多的不可行的应用。使用limit参数我很
10、少使用split函数的limit可选参数,下面介绍一个使用这个limit的实例:vargetDornain二function(url){returnurl.split('/',3).join('/');getDomain("http://www.aneventapart・com/2010/seattle/slides/,z);//〃http://www.aneventapart.com"getDomain(〃https://addons.mozilla.org/en-US/fire