Javascript中的内置对象--String

114 阅读5分钟

我们在与页面交互时的数据,与服务端交互时的数据,都以String的形式呈现,所以我们在实现页面效果时大部分时间在处理字符串的问题?那么原生字符串中究竟有哪些方法供我们使用呢?想要彻底解决这些问题,就要系统的解析字符串的方法,那么我们今天就来深度解析一下这个问题哈。

什么是字符串?

字符串:从字面意思理解,就是将若干文字或符号连接在一起的一串字符,称为字符串。从表现形式上看呢,就是写在引号中的数据,都称为是字符串,而且不区分单双引。

如何声明字符串?

  1. 字面量方式:‘’     “”
  2. 构造函数方式:new String()

//声明字符串
var str = 'hello';  //字面量声明方式
var o_str = new String('hello'); //构造函数声明方式
//在使用中没有区别,但是在检测数据类型的是一定的区别。
console.log(typeof str); //返回结果: 'string'
console.log(typeof o_str); //返回结果:'object' 

String的属性

length  : 表示字符串的长度(即字符串中有多少个字符)

var str = '中华人民共和国';
console.log(str.length); // 7 表示有7个字符

字符串的方法(查、替、截、转)

indexOf('字符串',start)

  1. '字符串' : 要查找的字符串
  2. start : 指定从哪个下标开始查找
  • 作用:返回指定字符串在父串中首次出现

    的下标位置。

  • 返回值:返回下标值

  • 是否影响原字符串:否

//声明一个字符串
var str = 'how do you do?';
console.log(str.indexOf('do')); // 4  返回do第一次出现时的下标,这里只返回字符串中第一个字符的下标
console.log(str.indexOf('do',5)); //11 从5下标开始向后查找,do第一次出现的下标是11

lastIndexOf('字符串',start)

  • 作用:返回一个字符串最后出现的位置。
  • 返回值:返回下标值
  • 是否影响原字符串:否
//声明一个字符串
var str = 'how do you do?';
console.log(str.lastIndexOf('do')); // 11  返回do最后一次出现时的下标,这里只返回字符串中第一个字符的下标
console.log(str.lastIndexOf('do',5)); //4 查找截止到5下标,do最后一次出现的下标是4

charAt(index)    : index-下标

  • 作用:根据下标获取指定的字符
  • 返回值:返回字符
  • 是否影响原字符串:否
//声明一个字符串
var str = 'how do you do?';
console.log(str.charAt(4)); // 'd'  返回4下标对应的字符d
//遍历字符串
for(var i = 0,len = str.length;i < len;i ++){
    console.log(str.charAt(i)); //从字符串中遍历出每一个字符,进行处理
}

charCodeAt(index)   :index-下标

  • 作用:根据下标查找指定字符的编码值。
  • 返回值:返回字符编码
  • 是否影响原字符串:否
//声明一个字符串
var str = 'how do you do?';
console.log(str.charCodeAt(4)); // 100  返回4下标对应的字符d的编码值

replace(旧串,新串)

  • 旧串: 被替换的字符串
  • 新串: 要替换成的字符串
  • 作用:在父串中将指定的字符串替换成新的字符串(注:一次只能替换一个字符串)。
  • 返回值:返回替换后的新字符串
  • 是否影响原字符串:否
//声明一个字符串
var str = 'how do you do?';
console.log(str.replace('do','de')); // 'how de you do' 将第一个do替换成了de

substring(start,end)

  • start : 从哪个下标位置开始
  • end : 到哪个下标位置结束(不包含结束位置)
  • 作用:截取字符串中指定范围的子串。
  • 返回值:被截取到的字符串
  • 是否影响原字符串:否

substr(start,length)

  • start : 从哪个下标位置开始
  • length : 截取指定的长度
  • 作用:截取指定长度的子串
  • 返回值:被截取到的字符串
  • 是否影响原字符串:否

slice(start,end)

  • start : 从哪个下标位置开始
  • end : 到哪个下标位置结束(不包含结束位置)
  • 作用:截取字符串中指定范围的子串。
  • 返回值:被截取到的字符串
  • 是否影响原字符串:否
//声明一个字符串
var str = 'how do you do?';
console.log(str.substring(4)); // 'do you do?' 从下标4开始截取到字符串末尾
console.log(str.substr(4)); // 'do you do?' 从下标4开始截取到字符串末尾
console.log(str.slice(4)); // 'do you do?' 从下标4开始截取到字符串末尾

console.log(str.substring(4,6)); // 'do' 从下标4开始截取到下标6(不包含下标6位置的字符)
console.log(str.substr(4,6)); // 'do you' 从下标4开始截取6个字符
console.log(str.slice(4,6)); // 'do' 从下标4开始截取到下标6(不包含下标6位置的字符)

console.log(str.substring(6,4)); // 'do' 从下标4开始截取到下标6(不包含下标6位置的字符)(substring总是从小的下标开始截取到大的下标,在方法中做了参数的交换)
console.log(str.substr(4,6)); // 'do you' 从下标4开始截取6个字符
console.log(str.slice(6,4)); // '' 从6下标开始截取到4下标,但是后面没有4下标,所以截取到空字符串。
        
console.log(str.substring(-6,-4)); // '' 从下标-6开始截取到下标-4(substring的参数不支持负数,所以截取到空字符串)
console.log(str.substr(4,6)); // 'do you' 从下标4开始截取6个字符
console.log(str.slice(-6,-4)); // 'ou' 从-6下标开始截取到-4下标,最后一个字符为-1,依次向前-2,-3,…… ,所以-6对应的是o,截取现-4对应的是空格,不包含-4下标的字符,所以截取到'ou'

toUpperCase()

  • 作用:将字符串中的小写字母全部转为大写字母。
  • 返回值:返回转换后的字符串
  • 是否影响原字符串:否
var str = 'How Are You';
console.log(str.toUpperCase()); //'HOW ARE YOU' 转为大写字母

toLowerCase()

  • 作用:将字符串中的大写字母全部转为小写字母。
  • 返回值:返回转换后的字符串
  • 是否影响原字符串:否
var str = 'How Are You';
console.log(str.toLowerCase()); //'how are you' 转为小写字母

split('切割符',length)

  • 作用:将数组切割为数组。
  • 返回值:返回转换后的数组
  • 是否影响原字符串:否
var str = 'how are you';
console.log(str.split(' ')); //['how','are','you'] 以空格作为切割符,切成三个字符串,分别放到数组中。
console.log(str.split(' ',2)); //['how','are'] 以空格作为切割符,切成三个字符串,第二个参数表示将前面2个字符串,分别放到数组中。

- End -