原文连接:http://www.feeldesignstudio.com/2013/09/native-javascript-object-properties-and-methods-stringjavascript
length 属性可返回字符串中的字符数目。java
length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0。length 不可修改。正则表达式
charAt() 方法可返回指定位置的字符。注意,JavaScript 并无一种有别于字符串类型的字符数据类型,因此返回的字符是长度为 1 的字符串。数组
stringObject.charAt(index)浏览器
参数index是必需的。表示字符串中某个位置的数字,即字符在字符串中的下标。字符串中第一个字符的下标是 0。若是参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。jsp
注意:charAt() 方法对于一些非 BMP(Basic-Multilingual-Plane) 字符支持会有问题,参考:MDN函数
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 – 65535 之间的整数。
方法 charCodeAt() 与 charAt() 方法执行的操做类似,只不过前者返回的是位于指定位置的字符的编码,然后者返回的是字符子串。编码
stringObject.charCodeAt(index)spa
参数index是可选的。表示字符串中某个位置的数字,即字符在字符串中的下标。字符串中第一个字符的下标是 0。若是 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。index为空时默认为0。code
Unicode 编码的范围是 0 到 1,114,111。前128个Unicode 编码和ASCII字符编码匹配。charCodeAt() 方法返回的值老是小于65536,由于更高值的字符会成对出现,须要用charCodeAt(i)和charCodeAt(i+1)同时检索。
concat() 方法用于链接两个或多个字符串。
stringObject.concat(stringX, stringX, …, stringX)
参数stringX是必需的。是将被链接为一个字符串的一个或多个字符串对象。
concat() 方法将把它的全部参数转换成字符串,而后按顺序链接到字符串 stringObject 的尾部,并返回链接后的字符串。请注意,stringObject 自己并无被更改。
注意,强烈建议使用 ” + ” 运算符来进行字符串的链接,来替代这个方法,效率也更高,参考:concat vs + vs join。
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue, fromindex)
参数searchvalue是必需的,规定需检索的字符串值。参数fromindex是可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length – 1。如省略该参数,则将从字符串的首字符开始检索。
该方法将从头至尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。若是找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
注意:indexOf() 方法对大小写敏感!若是要检索的字符串值没有出现,则该方法返回 -1。
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
lastIndexOf() 和 indexOf() 参数和使用方法一致,只不过是从后向前搜索。
用本地特定的顺序来比较两个字符串。
stringObject.localeCompare(target)
参数target是必需的,要以本地特定的顺序与 stringObject 进行比较的字符串。
返回比较结果的数字。若是 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。若是 stringObject 大于 target,则该方法返回大于 0 的数。若是两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。
把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不必定是正确的。例如,在西班牙语中,其中字符 “ch” 一般做为出如今字母 “c” 和 “d” 之间的字符来排序。localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。
localeCompare()在某些高级浏览器中的参数还支持locales 和 options,参考下面的代码和 MDN:
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法相似 indexOf() 和 lastIndexOf(),可是它返回指定的值,而不是字符串的位置。
stringObject.match(regexp)
参数regexp能够是字符串,也能够是正则表达式 RegExp 对象。
返回存放匹配结果的数组。该数组的内容依赖于 regexp 是否具备全局标志 g。
若是 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。若是没有找到任何匹配的文本, match() 将返回 null。不然,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其他的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素以外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。
若是 regexp 具备标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的全部匹配子字符串。若没有找到任何匹配的子串,则返回 null。若是找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中全部的匹配子串,并且也没有 index 属性或 input 属性。
没有标志g,调用 stringObject.match(regexp) 和调用 regexp.exec(stringObject) 的结果相同。在全局检索模式下,match() 即不提供与子表达式匹配的文本的信息,也不声明每一个匹配子串的位置。若是须要这些全局检索的信息,可使用 RegExp.exec()。
注意:若是须要知道一个字符串是否匹配一个正则表达式,使用 regexp.test(string);若是只想一次匹配,使用 regexp.exec(string) 代替 string.match(regexp)。
replace() 方法用于在字符串中用一些字符替换另外一些字符,或替换一个与正则表达式匹配的子串。
stringObject.replace(regexp/substr, replacement)
参数regexp/substr是必需的。规定子字符串或要替换的模式的 RegExp 对象。若是该值是一个字符串,则将它做为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。参数replacement是必需的。是一个字符串值。规定了替换文本或生成替换文本的函数。
方法会返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或全部匹配以后获得的。
字符串 stringObject 的 replace() 方法执行的是查找并替换的操做。它将在 stringObject 中查找与 regexp 相匹配的子字符串,而后用 replacement 来替换这些子串。若是 regexp 具备全局标志 g,那么 replace() 方法将替换全部匹配的子串。不然,它只替换第一个匹配子串。
replacement 能够是字符串,也能够是函数。若是它是字符串,那么每一个匹配都将由字符串替换。可是 replacement 中的 $ 字符具备特定的含义。以下所示,它说明从模式匹配获得的字符串将用于替换:
replacement 能够是函数,在这种状况下,每一个匹配都调用该函数,它返回的字符串将做为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,能够有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 自己。
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
stringObject.search(regexp)
参数regexp能够是须要在 stringObject 中检索的子串,也能够是须要检索的 RegExp 对象。
返回stringObject 中第一个与 regexp 相匹配的子串的起始位置。若是没有找到任何匹配的子串,则返回 -1。
注意:search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,而且老是从字符串的开始进行检索,这意味着它老是返回 stringObject 的第一个匹配的位置。
若是只是想知道是否有匹配的字符串,使用search()和使用test()方法差很少。若是想获得更多的信息,可使用match()和exec()方法,可是效率会低。
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
stringObject.slice(start, end)
参数start是要抽取的片段的起始下标。若是是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
参数end是紧接着要抽取的片断的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。若是该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
方法会返回一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的全部字符。
注意:String 对象的方法 slice()、substring() 和 substr() 均可返回字符串的指定部分。强烈建议在全部场合都使用 slice() 方法。
不推荐使用,建议使用slice()替代。
不推荐使用,建议使用slice()替代。
不推荐使用,只在土耳其语等少数语种中有用,建议使用toLowerCase()替代。
不推荐使用,只在土耳其语等少数语种中有用,建议使用toUpperCase()替代。
toLowerCase() 方法用于把字符串转换为小写。
toUpperCase() 方法用于把字符串转换为大写。
String对象还有不少用于HTML 标签的方法:anchor()、big()、blink()、bold()、fixed()、fontcolor()、fontsize()、italics()、link()、small()、strike()、sub()、sup()。他们主要是对String对象进行HTML格式化处理,如今已经不多有人会应用到了,不推荐使用。参见:演示代码