跳到主要内容

字符串

1、字符串的定义

通过字面量定义字符串

var str1 = "abcd";

字面量字符串转字符串

var str2 = String("abcd");

通过构造函数定义字符串

var str3 = new String("abcd"); 

字面量字符串和构造函数字符串的区别:

console.log(typeof str1) // string
console.log(typeof str3) // Object

2、字符串属性

字符串长度: 字符串名称.length;

3、字符串(获取)方法

charAt

语法:str.charAt(index);

说明:从一个字符串中获取索引为index的字符。

charCodeAt

语法:str.charCodeAt(index);

说明:获取字符串中下标为 index 的字符的 ASCII 编码

fromCharCode

语法:String.fromCharCode(num1, ..., numN)

说明:返回一个ASCII编码为num1,...numN对应的字符组成的字符串。

4、字符串(查找)方法

indexOf

语法:str.indexOf(searchValue[, fromIndex])

说明:从fromIndex索引开始(可省略)从前往后查找,第一次出现searchValue的索引值。如果没有找到返回 -1.

lastIndexOf

语法:str.lastIndexOf(searchValue[, fromIndex])

说明:从fromIndex索引开始(可省略)向前查找,第一次出现searchValue的索引值。表示str字符串中最后出现searchValue的索引值。如果没有找到返回 -1.

语法:str.search(substr|regexp)

说明:查找满足字符串substr或者正则表达式regexp的str中第一次出现的索引,Eugene没找到返回-1.

PS:如果传入一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象。

match

语法:str.match(regexp);

说明:返回一个根据正则表达式regexp查找str的所有匹配的字符串,然后将匹配的字符串集合以数组形式返回。

regexp:一个正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp 。如果你未提供任何参数,直接使用 match() ,那么你会得到一个包含空字符串的 Array :[""]

5、字符串(替换)方法

replace

语法:str.replace(regexp|substr, newSubStr|function)

说明:返回一个由替换值替换一些或所有匹配的模式后的新字符串。他不会改变原字符串。

regexp|substr:将要被替换的字符串或者正则表达式

newSubStr|function:新的字符串或者一个用来创建新子字符串的函数。

6、字符串其他方法

split

语法:str.split([separator[, limit]])

说明:以separator为分割标志,分割出limit个数的字符串。没有limit的话,全部分割。

separator:

Tip: 如果空字符串("")被用作分隔符,则字符串会在每个字符之间分割。

substring

语法:str.substring(indexStart[, indexEnd])

说明:返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。

slice

语法:str.slice(beginSlice[, endSlice])

说明:提取一个字符串的一部分,并返回一新的字符串。

substring 和 slice 的区别:

1、如果有两个参数 startIndex, endIndex ,都是从startIndex截取到 endIndex

2、如果有一个参数startIndex,并且大于等于0,都是从startIndex截取到字符串的最后。

3、如果有一个参数startIndex,并且小于0:区别:substring 会返回源字符串的全部;slice 会截取源字符串的最后 startIndex个字符。

toUpperCase

toLowerCase

trim

语法:str.trim()

说明:去除str两端空格。trim() 方法并不影响原字符串本身,它返回的是一个新的字符串。

相应的:

str.trimLeft(); // 去除str左边空格

str.trimRight(); // 去除str右边空格