## 什么是字符串对象
字符串对象,主要作用是对字符串进行处理的支持,字符串对象与字符串是完全不同的概念。
var str1= new String(1);
var str2= String (1);
var str3= '1';
str1===str2 //false
str1===str3 //true
str2===str3 //false
字符串长度
String.length
var myString = new String(“hello world”);
console.log(myString.length);
//输出字符串的长度
字符串常用方法
方法 | 描述 |
---|---|
charAt() | 返回在指定位置的字符。 |
concat() | 连接字符串。 |
indexOf() | 检索字符串。 |
lastIndexOf() | 从后向前搜索字符串。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片断,并在新的字符串中返回被提取的部分。 |
split() | 把字符串分割为字符串数组。 |
1.charAt() 方法
定义和用法
charAt() 方法可返回指定位置的字符。
语法
stringObject.charAt(index)
//index:必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
tips:
字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
2.concat() 方法
定义和用法
concat() 方法用于连接两个或多个字符串。
语法
string.concat(stringA,stringB,...,stringN)
//stringA:必需。将被连接为一个字符串的一个或多个字符串对象。
concat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 string的尾部,并返回连接后的字符串。请注意,string本身并没有被更改。
tips:使用 " + " 运算符来或更优雅的字符串模板·${}·进行字符串的连接运算通常会更简便一些。
3.indexOf() 方法
定义和用法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
语法
string.indexOf(searchvalue//检索值,fromindex//开始位置)
参数 | 描述 |
---|---|
searchvalue | 必需。规定需检索的字符串值。 |
Fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
说明
该方法将从头到尾地检索字符串 string,看它是否含有子串 searchvalue。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
tips:
indexOf() 方法对大小写敏感!
如果要检索的字符串值没有出现,则该方法返回 -1。
实例
var str="Hello world!" ;
console.log(str.indexOf("Hello") ) ;//0
console.log(str.indexOf("World") ); //-1
console.log(str.indexOf("world")) ;//6
4.lastIndexOf() 方法
定义和用法
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置。
语法
string.lastIndexOf(searchvalue,fromindex)
参数 | 描述 |
---|---|
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取 |
值是 0 到 string.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
返回值
如果在 string 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。
5.match() 方法
定义和用法
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
语法
stringObject.match(searchvalue)
stringObject.match(regexp)
参数 | 描述 |
---|---|
searchvalue | 必需。规定要检索的字符串值。 |
regexp | 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。 |
返回值
存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
说明
match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。
如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。
否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。
除了这些常规的数组元素之外,返回的数组还含有两个对象属性。
index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。
如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的所有匹配子字符串。若没有找到任何匹配的子串,则返回 null。如果找到了一个或多个匹配子串,则返回一个数组。
不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。
返回值
存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
参数 | 返回值 |
---|---|
searchvalue | 必需。规定要检索的字符串值。 |
/regexp/ | 只执行一次匹配,找不到返回null,找到只有一个,返回搜索到的区配的数据和它在原字符串只的位置信息 |
/regexp/g | 执行全局检索,找不到返回null,找到返回数组,数组存放所有匹配的选项 |
6.replace() 方法
定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法
stringObject.replace(regexp/substr,replacement)
参数 | 描述 |
---|---|
regexp/substr | 必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
返回值
一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
说明
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配将由字符串替换。
实例
对段落中的文字进行替换:
var str = "前轱辘不转后轱辘转思密达" ;
console.log(str.replace(/思密达/,'습니다')) ;
//前轱辘不转后轱辘转습니다
6.search() 方法。
定义和用法
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
语法
stringObject.search(regexp)
返回值
stringObject 中第一个与 regexp 相匹配的子串的起始位置。如果没有找到任何匹配的子串,则返回 -1。
参数:regexp:该参数可以是需要在 stringObject 中检索的子串,也可以是需要检索的 RegExp 对象。
注释:要执行忽略大小写的检索,请追加标志 i。
7.slice() 方法
定义和用法
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法
string.slice(start,end)
返回值
一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
参数 | 描述 |
---|---|
start | 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 |
End | 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 |
实例
输出 str 从位置 6 到位置 11 的所有字符:
var str = 'Hello happy world!';
console.log(str.slice(6,11));
//happy
8.split() 方法
定义和用法
split() 方法用于把一个字符串分割成字符串数组。
语法
string.split(separator,howmany)
返回值
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 string分割成子串创建的。返回的数组中的字串不包括separator 自身。
参数 | 描述 |
---|---|
separator | 必需。字符串或正则表达式,从该参数指定的地方分割 string。 |
howmany | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
实例
将字符串拆成数组:
var str="How are you doing today?"
console.log(str.split(" ")) // ["How", "are", "you", "doing", "today?"]
console.log(str.split("")) //(24) ["H", "o", "w", " ", "a",....,'y','?']
console.log(str.split(" ",3)) // ["How", "are", "you"]