String :在底层字符串是以字符数组的形式保存的。
参考文档:
https://www.w3cschool.cn/jsref/jsref-obj-string.html
String属性:
- length属性
var str = "Hello NIHAO";
console.log(str.length);
输出:
11
String方法:
String的方法一般都不会对原字符串产生影响,将执行结果进行返回。
-
charAt():返回指定位置字符
-
charCodeAt():返回指定位置字符的编码(Unicode编码)
-
String.fromCharCode():根据字符编码获取字符
-
concat():可以连接两个或多个字符串,作用和 + 一样
-
indexof():检索一个字符串中是否含有指定内容
如果有返回第一次出现该字符的索引;没有则返回-1
可以指定第二个参数,表示从该位置开始查找 -
lastIndexof(): 该方法的用法和indexOf()一样,不同的是indexOf是从前往后找,而lastIndexOf是从后往前找。
但是它返回的索引也是正着数的。
它同样可以有第二个参数,表示从该位置(包含该位置)向前找。 -
slice (start,end) 可以从字符串中截取
[ start,end )
的内容。
可以用负数当参数,表示从后向前数。 -
subString(start,end) 可以从字符串中截取
[ start,end )
的内容。
和slice()参数类似;不同的是这个方法不能接受负值作为参数,如果传递了一个负值,则默认使用0
而且他还自动调整参数的位置,如果第二个参数小于第一个,则自动交换。
该方法有的浏览器不支持 -
sunstr (start, length)strart:开始截取的位置,length:截取的长度
-
splice ( str ):可以将一个字符串拆分成一个数组,根据 参数 str 拆分数组
如果传递一个空串,就将每个字符都分别拆开。 -
toUpperCase() : 将字符串转成大写
-
toLowerCase() :将字符串转成小写
var str = "Hello NIHAO";
console.log(str.charAt(4));
console.log(str.charCodeAt(4));
console.log(String.fromCharCode(20045));
console.log(String.fromCharCode(0x2692));
console.log(str.indexOf("N",1));
console.log(str.lastIndexOf("N",6));
console.log(str.slice(0,5));
// 该方法有的浏览器不支持
// console.log(str.subString(0,1));
console.log(str.substr(1,5));
console.log(str.split(" "));
console.log(str.toUpperCase());
console.log(str.toLowerCase());
输出:
String有关正则表达式的方法
想要学习正则表达式请参考:https://blog.youkuaiyun.com/mantou_riji/article/details/123965020
- splice()结合正则表达式
可以传递正则表达式作为参数
var str = "1a2b3c4d5e6f";
// 根据字母拆分
var result = str.split(/[A-z]/);
console.log(result);
输出:
['1', '2', '3', '4', '5', '6', '']
- search():用来搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
serach()只会查找第一个,即使设置全局匹配也没用。
var str = "1a2b3c4d5e6f";
// 根据字母拆分
var result = str.search("b3");
console.log(result);
输出 :3
可以使用正则表达式作为参数:
搜索字符串中是否含有abc或aec或afc
var str = "1a2b3c4d5e6f";
// 根据字母拆分
var result = str.search(/a[2ef]b/);
console.log(result);
输出: 1
- match() :可以根据正则表达式,从字符串中将符合条件的内容提取出来
默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓
match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果
var str = "1a2b3c4d5e6f";
// 根据字母拆分
var result = str.match(/[a-z]/gi);
console.log(result);
console.log(Array.isArray(result));
输出:
['a', 'b', 'c', 'd', 'e', 'f']
true
- replace()将字符串中指定的内容替换为新的内容
参数:- 被替换的内容
- 新的内容
默认值替换第一个。——使用正则表达式
var str = "1a2b3c4d5e6f";
// 根据字母拆分
var result = str.replace(/[a-z]/gi,"@");
console.log(result);
输出:
1@2@3@4@5@6@