最常见和最有用的字符串相关的方法详解
转换字符串
你可以转换一个数字,布尔值,或一个字符串的对象:
varmyNumber=24;//24 varmyString=myNumber.toString();//"24"
varmyNumber=24;//24 varmyString=String(myNumber);//"24"
将字符串分割成多个子字符串
为了区分一个字符串转换为一个子字符串数组,你可以使用的split()方法:
varmyString="coming,apart,at,the,commas"; varsubstringArray=myString.split(",");//["coming","apart","at","the","commas"] vararrayLimited=myString.split(",",3);//["coming","apart","at"]
最后一行的第二个参数限制了数组参数所指定的项目的数量。
获取一个字符串的长度
要找出多少个字符长的字符串的length属性:
varmyString="You'requiteacharacter."; varstringLength=myString.length;//25
在字符串中找到一个子串
这样做的方法有两种。
使用indexOf():
varstringOne="JohnnyWaldoHarrisonWaldo"; varwheresWaldo=stringOne.indexOf("Waldo");//7
indexOf()方法从字符串的开头开始搜索的子串(通过)第一个参数,并返回第一次出现子字符串的开始位置。
使用lastIndexOf():
varstringOne="JohnnyWaldoHarrisonWaldo"; varwheresWaldo=stringOne.lastIndexOf("Waldo");//22
lastIndexOf()方法是完全一样的,只不过它返回传递的子字符串中最后一次出现的起始位置。
在这两种方法中,如果没有找到子字符串,则返回值-1,并允许一个可选的第二个参数表示您要开始搜索的字符在字符串中的位置
替换掉一个子串
要更换一个新的字符串的字符串的一部分或全部,你可以使用replace():
varslugger="JoshHamilton"; varbetterSlugger=slugger.replace("hHamilton","eBautista"); console.log(betterSlugger);//"JoseBautista"
第一个参数是你要替换的子字符串,第二个参数是新的子串。这只会替换匹配的子字符串的第一个实例。
要更换匹配的子字符串的所有实例,使用正则表达式的全局标志:
varmyString="Shesellsautomotiveshellsontheautomotiveshore"; varnewString=myString.replace(/automotive/g,"sea"); console.log(newString);//"Shesellsseashellsontheseashore"
第二个参数可以包括特殊的替换模式,或可以是一个函数。
在给定的位置,找到相应的字符
要查找的字符是在指定的位置,你可以使用charAt()方法:
varmyString="BirdsofaFeather"; varwhatsAtSeven=myString.charAt(7);//"f"
往往是在JavaScript的情况下,引用该字符串中的第一个位置为“0”,而不是“1”。
或者,您也可以使用charCodeAt(),它给你,而不是字符本身的字符代码:
varmyString="BirdsofaFeather"; varwhatsAtSeven=myString.charCodeAt(7);//"102" varwhatsAtEleven=myString.charCodeAt(11);//"70"
请注意,大写字母“F”的位(11)的字符代码与小写字母“f”的位(7)从字符码不同。
连接多个字符串
在大多数情况下,当您连接字符串时,你会使用加法运算符(+)。但你也可以选择使用CONCAT()方法:
varstringOne="KnibbHighfootball"; varstringTwo=stringOne.concat("rules.");//"KnibbHighfootballrules"
您还可以通过将多个字符串,将被一个个的追加起来(在它们出现的顺序):
varstringOne="Knibb"; varstringTwo="High"; varstringThree="football"; varstringFour="rules."; varfinalString=stringOne.concat(stringTwo,stringThree,stringFour); console.log(finalString);//"Knibbhighfootballrules."
提取字符串(组成新字符串)
有三种不同的方法来创建一个新的字符串值:
使用slice()方法:
varstringOne="abcdefghijklmnopqrstuvwxyz"; varstringTwo=stringOne.slice(5,10);//"fghij"
使用substring()方法:
varstringOne="abcdefghijklmnopqrstuvwxyz"; varstringTwo=stringOne.substring(5,10);//"fghij"
对于这两个slice()和substring()方法的第一个参数是你想要的开始的子串,第二个参数(这是可选的)后的字符串中的字符结束的字串。因此,在上面的例子中,参数“5,10”,是指,字符5到9,以创建一个新的字符串。
使用SUBSTR()
varstringOne="abcdefghijklmnopqrstuvwxyz"; varstringTwo=stringOne.substr(5,10);//"fghijklmno"
SUBSTR(),第一个参数代表开始新的字符串的字符,第二个参数是可选的。但这个时候,第二个参数表示的字符的总数应包括的开始的字符“5”的位置。
一个字符串转换为大写或小写
有四种方法做大小写转换。有两个字符串转换为全部大写:
varstringOne="Speakup,Ican'thearyou."; varstringTwo=stringOne.toLocaleUpperCase();//"SPEAKUP,ICAN'THEARYOU" varstringThree=stringOne.toUpperCase();//"SPEAKUP,ICAN'THEARYOU"
将字符串转换为小写:
varstringOne="YOUDON'THAVETOYELL"; varstringTwo=stringOne.toLocaleLowerCase();//"youdon'thavetoyell" varstringThree=stringOne.toLowerCase();//"youdon'thavetoyell"
模式匹配
在一个字符串匹配的模式,可以使用两种方法,其基本的工作方式相同。
一个字符串match()方法被调用,并通过正则表达式:
varmyString="Howmuchwoodcouldawoodchuckchuck"; varmyPattern=/.ood/; varmyResult=myString.match(myPattern);//["wood"] varpatternLocation=myResult.index;//9 varoriginalString=myResult.input//"Howmuchwoodcouldawoodchuckchuck"
exec()方法被调用的一个正则表达式对象,并通过字符串:
varmyString="Howmuchwoodcouldawoodchuckchuck"; varmyPattern=/.huck/; varmyResult=myPattern.exec(myString);//["chuck"] varpatternLocation=myResult.index;//27 varoriginalString=myResult.input//"Howmuchwoodcouldawoodchuckchuck"
对于这两种方法,只在第一个匹配发生被返回。如果没有找到匹配,将返回空值。
也可以使用search()方法,它接受一个正则表达式作为唯一的参数,并返回模式第一次出现的位置:
varmyString="Assume"; varpatternLocation=myString.search(/ume/);//3
如果没有找到匹配,则该方法返回“-1”。
比较两个字符串的排序顺序
您可以比较两个字符串,看看哪一个字母先靠前使用localeCompare,,有三个可能的返回值:
varmyString="chicken"; varmyStringTwo="egg"; varwhichCameFirst=myString.localeCompare(myStringTwo);//-1(exceptChrome,whichreturns-2) whichCameFirst=myString.localeCompare("chicken");//0 whichCameFirst=myString.localeCompare("apple");//1(Chromereturns2) stringObject.localeCompare(target)//公式
如上图所示,如果stringObject小于target,则localeCompare()返回小于0的数。如果stringObject大于target,则该方法返回大于0的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回0。
由于浏览器可以返回任何负数或正数之前和之后的结果最好使用if(result<0),而不是if(result===-1),后者将无法在Chrome浏览器中运行。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!