Javascript中的字符串

我只是一个虾纸丫 提交于 2020-01-15 17:30:30

字符串具备许多的方法 ,任何的字符串方法不会改变原字符串,因为字符串的方法的操作都是在新的字符串中。

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); 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!