Appearance
字符串方法
at
接收一个整数值,并返回一个新的String
语法:str.at(index)
index:字符串索引,当为负数时,从末端开始倒数
- 如果没有提供index或者index不是一个数值,默认0
- 如果找不到指定的索引,则返回undefined
javascript
let str = "sajefe fefery";
console.log(str.at(-1)); //y //当为负数时,从末端开始倒数
console.log(str.at())//s //没有提供index,默认0
console.log(str.at(45))//undefined //找不到指定的索引,返回undefined
console.log(str.at(0)); //s
console.log(str.at(1)); //a
console.log(str.at({})); //s //index不是一个数值,默认0
charAt
从一个字符串中返回指定的字符
语法:str.charAt(index)
index:0~length-1
- 如果没有提供index或者index不是一个数值,默认0
- 如果index是一个数值但是超出范围,则返回一个空字符串
javascript
let str = "sajefe fefery";
console.log(str.charAt(-1)); // 空字符串
console.log(str.charAt())//s //没有提供index,默认0
console.log(str.charAt(45))// 空字符串 //指定的index超出了该范围,返回一个空字符串
console.log(str.charAt(0)); //s
console.log(str.charAt(1)); //a
console.log(str.charAt({})); //s //index不是一个数值,默认0
charCodeAt
表示给定索引处的utf-16代码单元,返回0-65535之间的整数
语法:str.charCodeAt(index)
index:0~length-1
- 如果没有提供index或者index不是一个数值,默认0
- 如果index是一个数值但是超出范围,返回NaN
javascript
let str = "sajefe fefery";
console.log(str.charCodeAt(-1)); // NaN
console.log(str.charCodeAt()); //115 没有提供index,默认0
console.log(str.charCodeAt(45)); // NaN //index是一个数值但是超出范围,返回NaN
console.log(str.charCodeAt(0)); //115
console.log(str.charCodeAt(1)); //97
fromCharCode
返回由指定的UTF-16代码单元序列创建的字符串
语法:String.fromCharCode(num1[,...[,numN]])
javascript
let str = String.fromCharCode(97, 98, 99, 100);
console.log(str);//abcd
fromCharCode是String的静态方法,使用的时候
String.fromCharCode(),而不是作为你创建String对象的方法
concat
将一个或多个字符串与原字符串连接合并,形成新字符串返回
语法:str.concat(str2,[,...strN])
javascript
let str = "djfaq23";
let str2 = "eH452";
let str3 = "hkhkgd";
let str4 = "Kekhgfwe";
console.log(str.concat(str2)); //djfaq23eH452
console.log(str.concat(str3, str4)); //djfaq23hkhkgdKekhgfwe
startsWith
判断当前字符串是否以另一个给定的字子串开头,返回true或false
语法:str.startsWith(searchString[,position])
position:searchString的开始位置,默认值为0
javascript
let str = "2685709100@qq.com";
console.log(str.startsWith("268")); //true //默认值为0
console.log(str.startsWith("709", 3)); //false
console.log(str.startsWith("5709", 3)); //true
endsWith
判断当前字符串是否以另一个给定的子字符串结尾的,返回true或false
语法:str.endsWith(searchString[,length])
length:作为str的长度,默认为str.length
javascript
let str = "2685709100@qq.com";
console.log(str.endsWith("268")); //false
console.log(str.endsWith("268", 3)); //true
console.log(str.endsWith("com")); //true
console.log(str.endsWith("m")); //true
includes
用于判断一个字符串是否包含在另一个字符串中,返回true或false
语法:str.includes(searchString[,position])
position:从当前字符串的哪个索引值开始搜寻子字符串,默认值为0
此方法区分大小写
javascript
let str = "agaGawge34242";
console.log(str.includes("aga")); //true
console.log(str.includes("aga", 2)); //false //从索引2搜寻,所以false
console.log(str.includes("Gaw")); //true
console.log(str.includes("gaw")); //false //区分大小写
indexOf
给定一个子字符串,搜索整个调用字符串,并返回指定子字符串第一次出现的索引
语法:str.indexOf(searchString[,position])
position: 默认为0
- position小于0时,也是默认0
- position大于调用字符串的长度时,则不搜索
- 如果没有找到,则返回-1
此方法区分大小写
javascript
let str = "agaGawge34242";
console.log(str.indexOf("aga")); //0
console.log(str.indexOf("aga", 2)); //-1
console.log(str.indexOf("Gaw")); //3
console.log(str.indexOf("gaw")); //-1
lastIndexOf
返回调用String对象的指定值最后一次出现的索引,在一个字符串中的指定位置fromIndex处从后往前搜索
语法:str.lastIndexOf(searchValue[,fromIndex])
- 如果fromIndex大于str.length,则搜索整个字符串,从后到前
- 如果fromIndex小于0,则从0开始往前搜索
- 如果没有找到,则返回-1
javascript
let str = "dbcdd";
let str2 = str.lastIndexOf("d", 9);
let str3 = str.lastIndexOf("d", -1);
let str4 = str.lastIndexOf("d");
let str5 = str.lastIndexOf(2);
let str6 = str.lastIndexOf("d", 3);
console.log(str2); //4
console.log(str3); //0
console.log(str4); //4
console.log(str5); //-1
console.log(str6); //3
match
返回一个字符串匹配正则表达式的结果
语法:str.match(regexp)
regexp:一个正则表达式对象
- 如果参数是非正则表达式对象,会隐式使用new RegExp(obj)将其转换为一个RegExp
- 如果没给出参数,将得到一个包含空字符串的Array:[""]
- 如果使用g,返回与完整正则表达式匹配的所有结果,但不会返回捕获组groups
- 如果不使用g,则返回第一个完整匹配及相关的捕获组,在这种情况下,返回的项目有其他属性: groups 一个命名捕获组对象,其键是捕获组名称,值是捕获组,如果未定义命名捕获组,则为undefined index 匹配的结果的开始位置 input 搜索的字符串
javascript
let str = "agAGawge34242";
let res = str.match(/a/);
let res2 = str.match(/a/g);
let res3 = str.match(/a/gi);
let res4 = str.match(/(?<customName>a)/);
console.log(res); //['a'] 携带属性: {index: 0, input: 'agAGawge34242', groups: undefined}
console.log(res2); //["a", "a"]
console.log(res2.index); //undefined
console.log(res3); //['a', 'A', 'a']
console.log(res4);
/* ["a","a"] 携带属性: {groups: {customName: 'a'},index:0,input: "agAGawge34242"} */
matchAll
返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器
语法:str.matchAll(regexp)
regexp:正则表达式对象
javascript
let str = "test1test2";
let reg = /t(e)(st(\d?))/g;
let arr = [...str.matchAll(reg)];
console.log(arr[0]); //['test1', 'e', 'st1', '1']
console.log(arr[1]); //["test2", "e", "st2", "2"]
padStart
用另一个字符串填充当前字符串,从当前字符串左侧开始填充
语法:str.padStart(targetLength[,padString])
- targetLength小于字符串长度,则返回字符串本身
- 第二个参数如果没传,则补空字符串
多余长度会被截掉,少的会重复多次
javascript
let str = "khaefr";
let str2 = str.padStart(10, "a");
let str3 = str.padStart(2, "a");
let str4 = str.padStart(10, "afegaewgawegwae");
let str5 = str.padStart(10);
console.log(str2); //aaaakhaefr
console.log(str3); //khaefr
console.log(str4); //afegkhaefr
console.log(str5); // khaefr (前面有空字符串)
padEnd
用另一个字符串填充当前字符串,返回填充后达到指定长度的字符串
语法:str.padEnd(targetLength[,padString])
- targetLength小于字符串长度,则返回字符串本身
- 第二个参数如果没传,则补空字符串
多余长度会被截掉,少的会重复多次
javascript
let str = "khaefr";
let str2 = str.padEnd(10, "a");
let str3 = str.padEnd(2, "a");
let str4 = str.padEnd(10, "afegaewgawegwae");
let str5 = str.padEnd(10);
console.log(str2); //khaefraaaa
console.log(str3); //khaefr
console.log(str4); //khaefrafeg
console.log(str5); //khaefr (后面有空字符串)
repeat
构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本
语法:str.repeat(count)
count必须大于等于0,小于0会报错
javascript
let str = "khaefr";
let str2 = str.repeat(0);
let str3 = str.repeat(1);
let str4 = str.repeat(2);
console.log(str2); //""
console.log(str3); //khaefr
console.log(str4); //khaefrkhaefr
substring
返回一个字符串在开始索引到结束索引的一个子集
语法:str.substring(indexStart[,indexEnd])
- 如果indexStart和indexEnd相等,返回空字符串
- 如果indexEnd省略,则一直到字符串末尾
- 如果参数小于0或为NaN,则被当作0
- 如果任一参数大于str.length,则被当作str.length
- 如果indexStart大于indexEnd,则执行效果跟参数调换的一样
javascript
let str = "abcde";
let str2 = str.substring(0);
let str3 = str.substring(0, 3);
let str4 = str.substring(0, -1);
let str5 = str.substring({}, -1);
let str6 = str.substring(9, -1);
console.log(str2); //abcde
console.log(str3); //abc
console.log(str4); //""
console.log(str5); //""
console.log(str6); //abcde
split
用指定分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置
语法:str.split([separator[,limit]])
- 如果分隔符没找到或者省略,返回长度为1的数组,内容是整个字符串
- 如果分隔符是空字符串,str就会拆分成字符数组
- 如果limit为负数,相当没限制
javascript
let str = "abcde";
let str2 = str.split("");
let str3 = str.split("", 1);
let str4 = str.split("", 0);
let str5 = str.split("", -1);
let str6 = str.split("+");
let str7 = str.split();
console.log(str2); //['a', 'b', 'c', 'd', 'e']
console.log(str3); //['a']
console.log(str4); //[]
console.log(str5); //['a', 'b', 'c', 'd', 'e']
console.log(str6); //["abcde"]
console.log(str7); //["abcde"]
javascript
//案例:字符串的逆转
let str = "abcde";
let str2 = str.split("").reverse().join("");
console.log(str2);//edcba
replaceAll
返回一个新字符串,新字符串所有满足pattern(是一个字符串或一个RegExp)的部分都会被replacement(是一个字符串或一个在每次匹配被调用的函数)替换
语法:str.replaceAll(regexp|substr,newSubstr|function)
当使用regexp,必须设置全局g标志,否则引发TypeError
javascript
let str = "I love music,I love read.";
let str2 = str.replaceAll('I', "you");
let str3 = str.replaceAll(/love/g, "like");
console.log(str2) //you love music,you love read.
console.log(str3) //I like music,I like read.
search
返回正则表达式在字符串中首次匹配项的索引
语法:str.search(regexp)
regexp:一个正则表达式对象
- 如果传入一个非正则表达式regexp,则会使用new RegExp(regexp)隐式将其转换为正则表达式对象
- 如果没找到,返回-1
javascript
let str = "I love music,I love read.";
let index = str.search("I");
console.log(index);//0
const reg = new RegExp("I");
console.log(reg)///I/
slice
提取某个字符串的一部分,并返回一个新的字符串,且不改变原字符串
语法:str.slice(beginIndex[,endIndex])
beginIndex:从该索引开始提取源字符串中的字符,如果值为负数,则加上str.length看待
endIndex:可选,在该索引处结束提取字符串,如果省略,会提取到字符串末尾,如果为负数,则加上str.length
- 如果两个参数都没传,返回全部
- 如果第二个参数没传,提取到末尾
- 如果第二个参数比第一个参数要小或者相等,则返回空字符串
javascript
let str = "abcde";
console.log(str.slice()); //abcde
console.log(str.slice(0)); //abcde
console.log(str.slice(-2)); //de
console.log(str.slice(1)); //bcde
console.log(str.slice(0, 3)); //abc
console.log(str.slice(0, -3)); //ab
console.log(str.slice(0, 32)); //abcde
console.log(str.slice(-8, -2)); //abc
console.log(str.slice(-2, -8)); // (空字符串)
toLowerCase
字符串值转为小写
语法:str.tolowerCase()
javascript
let str = "AbcDe";
console.log(str.toLowerCase()); //abcde
toUpperCase
字符串值转换为大写
语法:str.toUpperCase()
javascript
let str = "AbcDe";
console.log(str.toUpperCase()); //ABCDE
toLocaleLowerCase
根据任何指定区域语言环境和值的大小写映射,转换为小写
语法:str.toLocaleLowerCase()str.toLocaleLowerCase(locale)str.toLocaleLowerCase([locale,locale,...])
locale: 指明要转换成小写格式的特定语言区域,如果以一个数组的形式给出多个locales,最合适的地区将被选出来应用 默认的locale是主机环境的当前区域设置
javascript
let str = "AbcDeI";
console.log(str.toLocaleLowerCase()); //abcdei
console.log(str.toLocaleLowerCase('en-US')); //abcdei
console.log(str.toLocaleLowerCase('TR')); //abcdeı
toLocaleUpperCase
根据本地主机语言环境把字符串转换为大写格式,并返回转换后的字符串
语法:str.toLocalUpperCase()str.toLocalUpperCase(locale)str.toLocalUpperCase([locale,locale,...])
javascript
let str = "AbcDei";
console.log(str.toLocaleUpperCase()); //ABCDEI
console.log(str.toLocaleUpperCase("en-US")); //ABCDEI
console.log(str.toLocaleUpperCase("TR")); //ABCDEİ
toString
字符串对象的toString()方法返回一个字符串,返回一个指定的字符串
语法:stringObj.toString()
javascript
let str= new String('cywhwe');
console.log(str.toString()) //"cywhwe"
trim
从字符串两端删除空白字符
语法:str.trim()
javascript
let str= ' fndf fdf '
console.log(str.trim()) //"fndf fdf"
trimEnd
从字符串末尾删除空白字符
语法:str.trimEnd()
javascript
let str= ' fndf fdf '
console.log(str.trimEnd()) //" fndf fdf"
trimStart
从字符串开头删除空白字符
语法:str.trimStart()
javascript
let str= ' fndf fdf '
console.log(str.trimStart()) //"fndf fdf "
valueOf
返回String对象的原始值
语法: str.valueOf()
javascript
let str= new String('erewr')
console.log(str) //String {'erewr'}
console.log(str.valueOf()) //erewr