JS字符串基础应用

JS字符串操作总结

String对象属性

  • length属性

length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度。当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样。

例:

var str = 'abc'; console.log(str.length);

  • prototype属性

prototype在面向对象编程中会经常用到,用来给对象添加属性或方法,并且添加的方法或属性在所有的实例上共享。因此也常用来扩展js内置对象,如下面的代码给字符串添加了一个去除两边空格的方法:

例:

String.prototype.trim = function(){return this.replace(/^\s*|\s*$/g, '');}

String对象方法

获取类方法

  • charAt();
  1. 作用:用来获取指定位置的字符串
  2. 语法:string.charAt(index)
  3. 参数:index 0 到 字符串长度-1 的一个整数
  4. 返回值: 返回字符串
  5. 注意: 如果index小于0或者大于等于字符串长度,返回空字符串

例:

var str = 'abcde';
    console.log(charAt(2)) //返回c
    console.log(charAt(9)) //返回空字符串

  • charCodeAt()

     作用:返回指定索引处字符的 Unicode 数值

  1. 语法:stringObject.charCodeAt(index)
  2. 参数:index 0 到 字符串长度-1 的一个整数
  3. 返回值: 返回指定索引处字符的 Unicode 数值
  4. 注意:

var str='abcde'
    console.log(str.charCodeAt(0)); //返回97

  • formCharCode()
  1. 作用:接受一个或多个Unicode值,然后返回一个字符串
  2. 语法:String.formCharCode(numX,numX,...,numX)
  3. 参数:index 一个或多个Unicode值
  4. 返回值: 返回指定Unicode 数值的字符串
  5. 注意:

String.formCharCode(97,98,99,100,101) //返回abcde

查找类方法

  • indexOf()
  1. 作用:返回指定值在调用该方法的字符串中首次出现的位置
  2. 语法:string.indexOf(searchValue [, fromIndex])
  3. 参数:searchValue一个字符串表示被查找的值 fromIndex开始查找的位置,默认值为0
  4. 返回值: 返回数字
  5. 注意: 如果存在 返回位置,如果不存在 返回-1

var str=abcdeabcde;
    console.log(str.indexOf('a')) //返回0
    console.log(str.indexOf('a',3)) //返回5
    console.log(str.indexOf('bc')) //返回1

  • lastIndexOf()方法
  1. 作用:返回指定值在调用该方法的字符串中最后出现的位置
  2. 语法:string.lastIndexOf(searchValue [, fromIndex])
  3. 参数:searchValue一个字符串表示被查找的值 fromIndex开始查找的位置,默认值为str.length-1
  4. 返回值: 返回数字
  5. 注意: 如果存在 返回位置,如果不存在返回-1

var str = 'abcdeabcde';
    console.log(str.lastIndexOf('a')); // 返回5
    console.log(str.lastIndexOf('a', 3)); // 返回0 从第索引3的位置往前检索
    console.log(str.lastIndexOf('bc')); // 返回6

  • search()方法
  1. 作用:用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
  2. 语法:stringObject.search(substr/reExp)
  3. 参数:子字符串 || 正则表达式
  4. 返回值: 返回第一个匹配的子字符串的起始位置
  5. 注意: 如果没有匹配的,则返回-1.

var str='abcDEF'
    console.log(str.search('c')) //返回2
    console.log(str.search('d')) //返回-1
    console.log(str.search(/d/i)) //返回3

  • match()方法
  1. 作用:可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
  2. 语法:stringObject.match(substr/reExp)
  3. 参数:子字符串 || 正则表达式
  4. 返回值: match()方法会从开始位置执行一次匹配,如果没有匹配到结果,则返回null。否则则会返回一个数组,该数组的第0个元素存放的是匹配文本,除此之外,返回的数组还含有两个对象属性index和input,分别表示匹配文本的起始字符索引和stringObject 的引用(即原字符串)。
  5. 注意:

var str = '1a2b3c4d5e';
    console.log(str.match('h')); //返回null
    console.log(str.match('b')); //返回["b", index: 3, input: "1a2b3c4d5e"]
    console.log(str.match(/b/)); //返回["b", index: 3, input: "1a2b3c4d5e"]

截取类方法

  • substring()
  1. 作用:截取指定位置之间的字符串
  2. 语法:string.substring(indexStart [, indexEnd])
  3. 参数:indexStart 截取的起始位置 indexEnd 截取的结束位置,默认为最后一个字符的位置+1
  4. 返回值: 返回截取后的字符串
  5. 注意: 会把负值转换成0 会根据起始位置和结束位置的大小先进行参数位置的变换,再进行截取

var str = 'abcdefg';
    console.log(str.substring(1, 4)); //返回bcd
    console.log(str.substring(1)); //返回bcdefg
    console.log(str.substring(-1)); //返回abcdefg,传入负值时会视为0

  • slice()
  1. 作用:方法提取字符串中的一部分,并返回这个新的字符串(包含起始位置,不包含结束位置)
  2. 语法:string.slice(beginSlice[, endSlice])
  3. 参数:beginSlice 起始位置 endSlice结束位置,默认为最后一个字符的位置+1
  4. 返回值: 返回截取后的字符串
  5. 注意: 不会根据参数大小交换参数位置 (参数从小到大,不然返回空) 如果参数中有负值,则处理成从末尾开始数(倒数)

var str = 'abcdefg';
    console.log(str.slice(1, 4)); //返回bcd
    console.log(str.slice(-3, -1)); //返回ef
    console.log(str.slice(1, -1)); //返回bcdef
    console.log(str.slice(-1, -3)); //返回空字符串,若传入的参数有问题,则返回空

  • substr()
  1. 作用:截取指定起始位置和长度的子字符串
  2. 语法:string.substr(start [, length])
  3. 参数:start 截取的起始位置 length 截取的字符串长度,默认为字符长度
  4. 返回值: 返回截取后的字符串
  5. 注意: 如果start为负数,则表示从字符串尾部开始算起。

var str = 'abcdefg';
    console.log(str.substr(1, 3)) //返回bcd
    console.log(str.substr(2)) //返回cdefg
    console.log(str.substr(-2, 4)) //返回fg,目标长度较大的话,以实际截取的长度为准
    

其他方法

  • split()方法
  1. 作用:通过一个指定的字符串把原字符串分割成一个数组
  2. 语法:string.split([separator] [, limit])
  3. 参数:separator分割符 (也可以用正则进行分割) limit指定最多分割的数量,默认为全部
  4. 返回值: 返回一个数组
  5. 注意: 当没有分割符的时候,整个字符串将作为一个整体保存到数组中
  • toLowerCase() && toUpperCase()
  1. 作用:把字符串全部转成小写(以小写为例)
  2. 语法:string.toLowerCase()
  3. 参数:
  4. 返回值: 返回转成小写的字符串
  5. 注意

var str = 'JavaScript';
    console.log(str.toLowerCase()); //返回javascript
    console.log(str.toUpperCase()); //返回JAVASCRIPT

  • replace()方法
  1. 作用:用来进行字符串替换操作
  2. 语法:stringObject.replace(regexp/substr,replacement)
  3. 参数:两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本。
  4. 返回值: 如果第一个参数传入的是子字符串或是没有进行全局匹配的正则表达式,那么replace()方法将只进行一次替换(即替换最前面的),返回经过一次替换后的结果字符串。 如果第一个参数传入的全局匹配的正则表达式,那么replace()将会对符合条件的子字符串进行多次替换,最后返回经过多次替换的结果字符串。
  5. 注意

    var str = 'abcdeabcde';
    console.log(str.replace('a', 'A'));
    console.log(str.replace(/a/, 'A'));
    
    var str = 'abcdeabcdeABCDE';
    console.log(str.replace(/a/g, 'A')); //返回AbcdeAbcdeABCDE
    console.log(str.replace(/a/gi, '$')); //返回$bcde$bcde$BCDE

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值