13字符串的方法
(1)字符串与字符串包装对象
字符串的所有方法都在字符串包装对象上边
let a = "你好";//创建字面量
let b = String('hello')//通过String函数创建字符串
let str = new String('hello')//字符串的包装对象
console.log( str )//String {"hello"}
//只要使用了字符串,浏览器都会创建一个字符串包装对象,然后进行使用,使用完成之后立马销毁
let a = 'hello world';
a.some = [1,2,3];//创建一个字符串包装对象,然后给这个对象设置some属性值为[1,2,3]
console.log( a.some );
console.log( a.some = [1,2,3] );//[1,2,3]
//可以遍历字符串
let b = 'hello world';
for( let i = 0,length = b.length; i < length; i++ ){
console.log( b[i] );
};
(2)方法
1.charAt(下标)
通过下标来获取字符串里的某个字符
let str = 'hello world';
console.log( str.charAt(1) );//e
2.String.fromCharCode()
查看字符对应的字符编码 String.fromCharCode(num1, num2 .....)
let result = String.fromCharCode(65,66,67);//65,66,67这三个字符编码对应的字符是
console.log(result);//'ABC' 是字符串
3.String.fromCodePoint()
和String.fromCharCode()
同
4.charCodeAt(下标)
把指定下标转化成为一个字符编码
let c = '晚安,世界!';
console.log( c.charCodeAt(0),c.charCodeAt(1) );//26202 23433
5.codePointAt(下标)
和charCodeAt(下标)
同
6.concat()
把多个字符串合并成同一个字符串,返回新的字符串
let d = 'hello',
e = ' world',
f = ' hi';
console.log( ''.concat(d, e, f) );//hello world hi
7.endsWith
str.endsWith('字符串', 字符串的长度)
-> 判断某个字符串是不是以XX结尾的
let g = 'hello world!';
console.log( g.endsWith('d', 5) );//false -> 严格区分大小写
8.startsWith
从下标X开始,判断是否是以X开头的str.startsWith('字符串',从下标几开始)
let g = 'hello world!';
console.log( g.startsWith('o', 3) ); //false
9.includes
判断字符串中是否包含Xstr.includes('字符串', 起始下标)
let g = 'hello world!';
console.log( g.includes(' ', 6) );//false
10.indexOf
indexOf('字符/字符串', 起始下标)
-> 从左往右从某下标开始查找该字符的下标,找不到返回-1
let g = 'hello world!';
console.log( g.indexOf('o', 6) );//7
11.lastIndexOf
lastIndexOf('字符/字符串', 起始下标)
-> 从右往左从某下标开始查找该字符的下标,找不到返回-1
let g = 'hello world!';
console.log( g.lastIndexOf('o', 6) );//4
12.match
去字符串里边匹配某个字符/字符串,传一个字符串进去 浏览器会自动转化为正则
matchAll(正则)
,返回迭代器对象
- 0: 匹配到的字符串
- index: 找到的字符串的下标
- input 原字符串
let reg = new RegExp('hello', 'gi');//这种写法叫做正则 -> 正则就是用来匹配字符串的
let h = 'hello world!Hello world!hello world!hello world!';
console.log( h.match('hello') );
console.log( h.matchAll(reg) );//返回迭代器对象 RegExpStringIterator {}
13.replace
replace(reg, 替换成什么文字)
let j = 'hello world!';
let reg_a = new RegExp('hello', 'gi');
console.log( j.replace( reg_a, '' ) );
14.trim()
去掉空格,返回新字符串
- trim() 删除前边和后边的空格
- trimLeft()/trimStart() -> 删除字符串开始的空格
- trimEnd()/trimRight() -> 删除字符串结尾的空格
let k = ' hello world ';
console.log( k.trim() );
console.log( k.trimRight().trimStart() );
console.log( k.trimStart() );
15.toLowerCase()
所有的字符都转化为小写
let str2 = 'Hello World';
console.log( str2.toLowerCase() );//hello world
16.toUpperCase()
所有的字符都转化为大写
let str1 = 'hellO world';
console.log( str1.toUpperCase());//HELLO WORLD
17.padEnd
/padStartpadEnd
padEnd(字符串的长度, ‘以什么样的字符串填充’),在末尾
padStart(字符串的长度, ‘以什么样的字符串填充’),在开头
let str3 = 'hello';
console.log( str3.padEnd(10, 'some') )//hellosomes
console.log( str3.padStart(10, 'world') )//worldhello
18.repeat
repeat(数字),重复多少遍
let str3 = 'hello';
let str5 = str3.repeat(5);
console.log(str5);//hellohellohellohellohello
19.slice
从原字符串中提取一部分 slice(start, end)
let str5 = hellohellohellohellohello;
console.log( str5.slice(0, -2) );//hellohellohellohellohel
20.substring
效果与slice一样
let str5 = hellohellohellohellohello;
console.log( str5.substring(1, 5) );
21.split
split(‘以什么为分隔’)把字符串变成数组
let str6 = 'hello world,hello world, hello world';
console.log( str6.split('hello') );//["", " world,", " world, ", " world"]
22.search
search(正则) 返回找到的这个字符/字符串的下标 只能找一个如果没有返回-1
let str7 = 'hello world,hello world,hello world,hello world';
const reg2 = new RegExp('hello', 'g');
console.log( str7.search(reg2) );//0
23.模板字符串
使用``, 直接进行换行,不需要使用\进行转义
不管是双引号还是单引号都可以直接包裹
如果需要在模板字符串里引入变量用 ${变量}
,可以写表达式 ,写在里边的任何数据都会被转化成为字符串
let str9 = `hello
world
some
`;
console.log(str9);
/*
hello
world
*/
//不管是双引号还是单引号都可以直接包裹
let str_a = `tom say: 'hello jerry',"i'm tom"`;
//用 `${变量} `
let str8 = 'hello world';
let arr = {nickname: '小明'};
console.log( `
<span>${str8}</span>
<span>${arr}</span>
` );
console.log( `hello ${ true && false }` );//hello false