字符串
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.
search
语法: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右边空格