1. 大小写转换
toUpperCase()
:把字符串中的全部字母转换为大写
toLowerCase
:把字符串中的全部字母转换为小写
let str="Hello World";
//把字符串转换为大写,输出HELLO WORLD
console.log(str.toUpperCase());
//字符串转换为小写,输出hello world
console.log(str.toLowerCase());
2. 提取字符串
charAt(index)
:提取指定下标位置的字符
let str="Hello World";
//提取指定下标1位置的字符
let char=str.charAt(1);
console.log(char); // e
substring(start,end)
:提取字符串指定开始位置(包含)和结束位置(不包含)之间的字符
- start : 必填项,开始位置,从0开始
- end : 可选项,结束位置
- 如果start与end值相等,则返回空字符串""
- 如果start比end大,则先把start与end交换,再进行提取
- 如果不填写end参数,则默认截取start到字符串末尾之间的字符
- 如果start和end参数为负数会转换为0
let str="Hello World";
//提取[1,3)之间的字符
console.log(str.substring(1,3)) // el
// 不填写end参数默认截取到字符串末尾
console.log(str.substring(1)); // ello World
// start和end参数如果填写负数会转换为0
console.log(str.substring(-2)); // Hello World
substr(start,length)
:提取字符串指定开始位置(包含)提取指定长度的字符
- start :必填项, 开始位置,从0开始,如果值为负数,则以距离右边start个字符为开始位置
- length :可选项, 要提取字符长度,不能为负数
- 如果不填写length参数,则默认截取start到字符串末尾之间的字符
let str = "Hello World";
//从下标1开始位置截取3个字符
console.log(str.substr(1, 3)); // ell
//以距离右边5个字符为开始位置截取3个字符
console.log(str.substr(-5, 3)); // Wor
// 截取[3,末尾]之间的字符
console.log(str.substr(3)); // lo World
slice(start,end)
:提取字符串指定开始位置(包含)和结束位置(不包含)之间的字符
- start : 必填项, 开始位置,从0开始,如果值为负数,则以距离右边start个字符为开始位置
- end : 可选项,结束位置,如果值为负数,则以距离右边end个字符为开始位置
- 如果不填写end参数,则默认截取start到字符串末尾之间的字符
let str = "Hello World";
//提取字符串[1,3)之间的字符,
console.log(str.slice(1,3)); // el
//提取以距离字符串右边5个字符为开始位置、以距离字符串右边1个字符为结束位置之间的字符串
console.log(str.slice(-5,-1)); // Worl
//作用跟上面一样
console.log(str.slice(str.length-5,str.length-1)); // Worl
//截取[3,末尾]之间的字符
console.log(str.slice(3)); // lo World
3. 字符串查找
indexOf(str)
:在原字符串中从左到右查找目标字符串所在的下标位置,查找成功返回下标,失败返回-1
lastIndexOf(str)
:在原字符串右从左到右查找目标字符串所在的下标位置,查找成功返回下标,失败返回-1
let str = "ten pen";
//从左到右查找"en"的下标位置
console.log(str.indexOf("en")); // 1
//从右到左查找"en"的下标位置
console.log(str.lastIndexOf("en")); // 5
// 查找不存在的字符串
console.log(str.indexOf("a")); // -1
let str="###截止日期【2021-3-25】截止日期###";
console.log(str.indexOf("###截止日期")); // 0
4. 拼接字符串
concat(str)
:拼接字符串
let str1="Hello";
// 使用加号拼接字符串
console.log(str1+" World");
// 使用concat拼接字符串
console.log(str1.concat(" World"));
5. 分割字符串
split(separator,count)
:使用分割符分割字符串,并返回字串数组
- separator : 分隔符,可以是一个正则表达式
- count : 可选项,进行分割的次数,返回数组的元素的个数
- 如果不填写count参数或者count为负数,默认分割整个字符串,不限制返回字串数组的元素个数
let str = "one|tow|three|four";
//使用|对整个字符串进行分割,不限制返回字串的数量
//输出:["one","two","three","four"]
console.log(str.split('|'));
//使用|对字符串进行分割,限制只需返回2个子串
//输出:["one","two"]
console.log(str.split('|', 2));
6. 正则表达式查找与替换
search(正则表达式)
:使用正则表达式在字符串中从左到右查找,并返回第一个匹配结果,查找成功返回下标,失败返回-1
let str = "ten pen then";
//使用正则表达式从左到右查找en
console.log(str.search(/en/)); // 1
replace(正则表达式或字符串,用于替换的字符串)
:使用正则表达式替换字符串中匹配的结果
let str = "ten pen then";
// 使用正则表达式替换字符串中的第一个en
console.log(str.replace(/en/,"xy")); // txy pen then
// 作用同上
console.log(str.replace("en","xy")); // txy pen then
//使用正则表达式替换字符串中的所有en
console.log(str.replace(/en/g,"xy")); // txy pxy thxy
match(正则表达式)
:使用正则表达式查找字符串中匹配的子字符串,返回多个匹配结果的字符串数组
- 正则表达式如果带g,则可能匹配多个结果的数组,数组中每个元素就是匹配的结果;如果不带g,最多只能返回一个结果,数组的元素右匹配值、index、input、groups组成
let str = "ten pen then";
// 使用正则表示查找第一个以en结尾的单词
console.log(str.match(/\w+en/)); // ['ten', index: 0, input: 'ten pen then', groups: undefined]
//使用正则表示查找所有以en结尾的单词
console.log(str.match(/\w+en/g)); // ["ten","pen","then"]
matchAll(正则表达式)
:使用正则表达式查找字符串中匹配的子字符串,返回的是一个迭代器
- 正则表达式必须带g,否则会报错
- 遍历迭代器用for of
let str = "ten pen then";
// 使用正则表示查找所有以en结尾的单词,返回一个迭代器
let iterator=str.matchAll(/\w+en/g);
for (const iter of iterator) {
/*
['ten', index: 0, input: 'ten pen then', groups: undefined]
['ten', index: 4, input: 'ten pen then', groups: undefined]
['ten', index: 8, input: 'ten pen then', groups: undefined]
*/
console.log(iter);
}
7. 清除字符串两端空格
trim()
:清除字符串两端空格
let str=" Hello World "
console.log(str.trim()); // Hello World
8. 字符串判断(ES6)
includes(str,position)
:从指定下标位置开始查找查找原字符串中是否包含字符串,存在返回true,否则返回false
- position:可选项,从指定下标位置开始查找,如果不填写该参数,默认不限制下标位置
let str="Hello World";
console.log(str.includes('ll')); // true
console.log(str.includes('ll',6)); // false
console.log(str.includes('or',6)); // true
startsWith(str,position)
:从指定左边下标位置开始查找是否以指定子字符串开头,是则返回true,否则返回false
- position:可选项,从指定下标位置开始查找,如果不填写该参数,默认为0
let str="Hello World";
console.log(str.startsWith('He')); // true
console.log(str.startsWith('He',3)); // false
console.log(str.startsWith('lo',3)); // true
let str="deadline2013-5-8deadline";
console.log(str.startsWith("deadline")); // true
console.log(str.startsWith("deadline",10)); // false
endsWith(str,position)
:从指定0~结束下标位置之间查找是否以指定子字符串开头,是则返回true,否则返回false
- position:可选项,从0~position之间查找,如果不填写该参数,默认从整个原字符串中查找
- 注意:includes与startsWith的position是开始下标位置,而endsWith的position是结束下标位置
let str="Hello World";
// 在"Hello World"中查找
console.log(str.endsWith('ld')); // true
// 在"Hel"中查找
console.log(str.endsWith('ld',3)); // false
// 在"Hel"中查找
console.log(str.endsWith('el',3)); // true