您的位置:首页 > Web前端 > JavaScript

js基本包装类型String类型常用属性和方法总结

2019-03-01 18:23 225 查看

一、length属性:
每个字符串都有一个length属性,返回字符串的长度。

var str1 = "Hello String";
console.log(str1.length);   // 12

二、字符串方法 charAt()、charCodeAt()
1、charAt(索引):参数是字符串索引,返回对应的字符;

var str2 = "Hello String";
console.log(str2.charAt(1));   // e  返回字符串索引1位置的字符

2、charCodeAt(索引):参数是字符串索引,返回对应索引字符的字符编码

var str3 = "Hello CharCodeAt";
console.log(str3.charCodeAt(1));   //101  返回字符串索引1位置字符的字符编码

三、截取方法slice()、substr()、substring()
1、slice():截取字符串
参数四种情况
(1)、当传两个参数,第一个参数是截取的开始位置的索引,第二个位置是截取的结束位置的索引,返回被截取的字符串,返回值不包含结束位置的字符串;
(2)、当传一个参数返回当前参数索引之后的所有字符串;
当传负参数时,slice()会把负数加上字符串了length,所得数替换对应参数;
(3)、当不传参数返回整个字符串;
(4)、当传不存在的索引返回空;

var str4 = "Hello slice";
console.log(str4.slice(1,2));   // 2   传入两个参数时,返回被截取的字符串,返回值不包含结束位置的字符串;
console.log(str4.slice(1));  // ello slice  传入一个参数时
console.log(str4.slice(-5,-4));  // s   参数是负数情况,将负数加上字符串的length,所得值替换原来位置
console.log(str4.slice());   // Hello slice   不传参数情况,返回整个字符串

2、substr():截取字符串
参数四种情况:
(1)、传入两个参数时,第一个参数是截取的开始位置的索引,第二个参数是指定返回字符串的个数;
(2)、传入一个参数时候,返回当前参数索引之后的所有字符串
(3)、传入负数时,substr()会把第一个参数加上字符串的length,所得数替换第一个参数,第二个参数会直接转换成0,返回空
(4)、传入空时,直接返回全部字符串

var str5 = "hello substr";
console.log(str5.substr(1,2));  // el   两个参数情况,第一个参数截取的起始位置,第二个参数是截取的个数
console.log(str5.substr(1));   // ello substr  一个参数情况,返回参数之后的所有字符串
console.log(str5.substr(-1,-2));  // 空   参数是负数时,第一次参数加上字符串length所得数替换原来参数,第二个参数直接转换成0
console.log(str5.substr());   // hello substr   传入空时候  返回所有字符串

3、substring():截取字符串
参数四种情况:
(1)、传入两个参数时候,第一次参数是截取起始位置,第二个参数是结束位置,返回值不包含结束位置字符
(2)、传入一个参数时候,返回参数之后的所有字符串
(3)、传入负数时候,会把所有负数直接转换成0
(4)、传入空时,返回所有字符串

var str6 = "hello substring";
console.log(str6.substring(1,2));  // e   两个参数返回值不包含结束位置字符
console.log(str6.substring(1));  // ello substring   一个参数时候,返回参数之后的所有字符串
console.log(str6.substring(-1,-2));   // 空   负数时会把所有负数参数都转换成0
console.log(str6.substring());   // hello substring   没有参数时,返回所有的字符串

四、查找方法indexOf()和lastIndexOf()
两个方法用法都一样,indexOf()从前开始查找,lastIndexOf()从后开始查找
返回值都是对应字符第一次出现的索引;
当查找不到返回-1
参数(“查找的字符”,“从哪里开始查找的索引(可选参数)”)

var str7 = "hello indexOf"
console.log(str7.indexOf("o"));   // 4
console.log(str7.indexOf("o",5));   // -1  查找“o”,从索引 5开始查找,查找没有结果,返回-1

lastIndexOf()用法一样

五、trim()去掉空格方法
trim():去掉首尾空格
trimLeft():去掉首部空格
trimRight():去掉末尾空格

var str8 = "  hello trim  ";
console.log(str8.tirm());   // "hello trim";
console.log(str8.tirmLeft());   // "hello trim  "
console.log(str8.tirmRight());  // "  hello trim"

六、配置模式match()、search()、replace()、split()
1、match():参数是字符串或者RegExp对象的正则表达式。返回是一个数组

var text = "cat,bat,sat.fat
4000
";
var pattern = /.at/;
var matchs = text.match(pattern);  // 返回一个数组  与pattern.exec(text); 方法相同
conosle.log(matchs.index);  // 0
console.log(matchs[0]);   // "cat"
console.log(pattern.lastIndex);   // 0

2、search():参数是字符串或者RegExp对象的正则表达式,返回字符串中第一个匹配的索引,如果没有找到匹配,则返回-1,search()方法始终从字符串开头向后面查找

var str8 = "cat,bat,sat,fat";
var pos = str8.search(/at/);
console.log(pos);   // 1  at在字符串中第一次出现的位置

3、replace():接收两个参数,第一个参数可以是一个 RegExp 对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局( g )标志

var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat"
result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond"

4、split():基于指定的分割符,将一个字符串分割成多个子字符串,返回一个数组;(可以理解为是将字符串转换为数组的方法)

var str = "yellow,red,blue,green";
console.log(str.split(','));    // ["yellow","red","blue","green"]

七、localeCompare()比较两个字符串
返回值 -1、0、1
1、如果字符串在字母表中应该排在字符串参数之前,返回一个负数(大多数情况返回-1)
2、如果字符串等于字符串参数,则返回0
3、如果字符串在字母表中应该排在字符串参数之后,返回一个正数(大多数情况返回1)

var str9 = "yellow";
console.log(str9.localeCompare("brick"));   // 1
console.log(str9.localeCompare("yellow"));   // 0
console.log(str9.localeCompare("zoo"));   // -1

八、 fromCharCode() 方法
这个方法的任务是接收一或多个字符编码,然后将它们转换成一个字符串。

console.log(String.fromCharCode(104,101,108,108,111));   // "hello"

九、大小写转换
toLowerCase():转换成小写,
toUpperCase():转换成大写;常用的方法
toLocalseLowerCase():转换成小写,
toLocalseUpperCase():转换成大写。针对特定的地区使用这两方法

var str6 = "hello world";
var str6s = str6.toLocaleUpperCase();
console.log(str6s)

十、ES6的字符串方法
在es6中有一大部分是处理unicode,这部分平时用的很少。记得就行了,万一用到了再去查
1、includes(), startsWith(), endsWith()

let str = 'abc'
str.includes('a') //是否包含
str.startsWith('a') //字符串开始位置是否包含
str.endsWith('c') //字符串结束位置是否包含

2、repeat 原来都认为这个就是替换,如今有了更多的用法
相信再开发中经常会碰到需要造假数据,有时候甚至需要很长的。有了这个后就可以方便的造重复数据了

'abc'.repeat(10) //参数给多少,字符串就重复多少次,很方便

3、padStart(),padEnd()
常用于日期补足2位 如: 2017-1-1 想改成 2017-01-01

'1'.padStart(2, '0') //第一个参数是限制字符串的长度,第二个要补的内容
'1'.padEnd(2, '0') //这个是从结尾处补足

4、字符串模板,这个用的比较多。

let a = 'a'
let b = 'b'
//曾经
console.log(a+b+'c') //曾经几何都是这么用的,如果碰上拼接html还带属性的,那单双引号拼的你头大,虽然这么作本来就不好,但是仍然很多人在用。
//现在
console.log(`${a}${b}c`) / console.log(`${a+b}c`) //把变量用${} 包起来就行了。简单多了。没有那么多单双引,没有加号

5、标签模板

function str(str, v1, v2){}
str `aaa${a} ${b} aaa` //这个写法就相当于把这个字符串传到了function里,里面的参数第一个是纯字符串(被变量隔开后,以数组形式展示),从第二个开始就是字符串里的变量了,有几个变量后面就有几个参数

6、raw

String.raw `abc\nddd` //比如字符串里有\n 输出后不会换行,而直接显示\n
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: