字符串具备许多的方法 ,任何的字符串方法不会改变原字符串,因为字符串的方法的操作都是在新的字符串中。
JS是一门基于对象的编程语言。值类型中,除了undefined和null之外 都有包装类型
字符串的包装类是 String
布尔值的包装类是 Boolean
数字的包装类是 Number
一,字符串的方法 (es6之前)
(1)字符串中的转义 \
字符串定义""或者’’,可以使用单引号包裹双引号,也可以使用双引号包裹单引号。
如果想要在双引号中出现双引号本身,则需要转义。 在双引号前面加\表示转义的意思。
(2)字符拼接 concat()
接收任意个参数 每一个参数都会被按照顺序拼接到字符串后面,如果不是字符串类型,会转为字符串再拼接.什么类型都可以拼接,数字,字符串。undefined,null,数组,不是字符串它自动转为字符串。
(3)获取下标对应的字符charAt() (也可以通过 字符串名[ ] 来找到字符串中的某一个值,字符串也可以用方括号方法)
var str = "abcdef";
var str1 = str.charAt(1); // 获取下标1对应的字符
console.log(str1);
console.log(str[1]);
(4)获取对应的字符unicode编码 charCodeAt()
var str = "abchdf";
var str1 = str.charCodeAt(3);
console.log(str1);
(5)截取 slice()(与数组的slice方法完全一致)
var str = "abcdefg";
var str1 = str.slice(1, ‐4)
console.log(str1)
(6)截取 substring()
(与slice相似,都是截取字符串内容,应用也相同,不同是它接收两个参数时从小的数截取到大的数,负数也不会从后面往前数)
subString方法可以接收2个参数 可以接收1个参数 可以不接收参数
如果不接受参数 是复制整个字符串
如果接收一个参数 表示从该位置截取到最后
如果接收两个参数 表示从小的数截取到大的数 负数也不会从后往前数
var str = "abcdefg";
console.log(str.substring());
console.log(str.substring(‐1));
console.log(str.substring(6, 3));
(7)截取 substr()
(与上两个截取相似,不同之处是当接收两个参数值时,第一个代表截取的开始位置,第二个参数代表截取的长度)
如果不接受参数 是复制整个字符串
如果接收一个参数 表示从该位置截取到最后
如果接收两个参数 第一个参数表示截取的开始位置 第二个参数表示截取的长度
var str = "abcdefg";
console.log(str.substr(1,4));
console.log(str.substr(‐1));
(8)split() 将字符串以指定的字符作为间隔打断,得到一个数组
var str = "a&b&c&d&e&f&g";
var arr = str.split('&');
console.log(arr);
var str1 = arr.join("$");
console.log(str1)
**(9)indexOf() 查找 **
查询指定字符串是否在str中 如果在 返回的是被查询的字符串的第一个字符的下标 如果不在返回1。如果有两个参数,第二个参数表示查询的起始位置 默认从头开始.
var str = "abchdf";
var str1 = str.indexOf("a",3);
console.log(str1);
(10) lastIndexOf() 查询
与indexOf一致 也是查询字符串中是否有指定字符串 但是是从后向前查询,从后面开始碰见查找的字符则记录位置。
var str = "abchhhhhdf";
var str1 = str.indexOf("h");
var str2 = str.lastIndexOf("h");
console.log(str1); //3
console.log(str2); //7
(11)trim() 去掉两侧的空格 (字符串中间的空格不能去掉,只能去掉两侧的)
var str = " abchhh hhdf ";
var str1 = str.trim();
console.log(str1);
(12)replace() 替换
第一个参数为原字符串被替换的字符,第二个参数为要替换成的字符。
var str = " abchhh hhdf ";
var str1 = str.replace("ab","bibi");
console.log(str1);
(13) match() 匹配
var str = "今天天气好晴朗,处处好风光";
var result = str.match('好晴朗');
console.log(result);
(14) search() 查找
从字符串的头部开始查找指定字符串 有就返回第一个字符的下标 如果没有就-1
var str = "jintianhhh";
var result = str.search('hhh');
console.log(result); //7
(15) toUpperCase() 大写
var str = "jintiSDGGDnhhh";
var result = str.toUpperCase();
console.log(result);
(16)toLowerCase() 小写
var str = "jintiSDGGDnhhh";
var result = str.toLowerCase();
console.log(result);
二,字符串的方法 (es6新增)
ES6中增加了一些字符串的方法
1.startsWith(str, pos)
该方法用于判定一个字符串是否以另一个字符串开头
str: 被检测的字符串
pos: 检测的开始位置 下标
// 定义一个字符串
let str = "还有4天就要回家了,车票买好了吗?";
// 判定str是否是以"还有"开头
let isStart = str.startsWith("还有");
// 判定下标为2的位置是否是以4天开头
let isStart = str.startsWith("还有", -1);
console.log(isStart);
2. endsWith(str, pos)
该方法用于判定一个字符串是否以另一个字符串结尾
str: 被检测的字符串
pos: 截取到此位置 下标
let str = "虽然只有四天,但是,把心收住";
let isEnd = str.endsWith("收住");
let isEnd = str.endsWith("心", -1);
console.log(isEnd);
3. includes(str, pos)
该方法用于判定一个字符串是否包含另一个字符串
str: 被检测的字符串
pos: 检测的开始位置 下标
let str = "没有什么话要说,祝各位新春快乐";
let isInclude = str.includes("乐");
let isInclude = str.includes("祝各位新春快乐", -1); // 因为subString的参数接收负数时不会从后往前数下标 而是真的从该负数位置开始截取 所以此次从-1的位置开始截取
console.log(isInclude);
经过测试:发觉startsWith和endsWith方法、includes方法第二个参数截取使用的是subString方法
4. repeat(num)
该方法用于将一个字符串重复num次 返回值是重复了num次的字符串
let str = "新春快乐";
let str1 = str.repeat(0);
console.log(str1.length);
来源:CSDN
作者:Shirley_0513
链接:https://blog.csdn.net/Shirley_0513/article/details/103984476