JS中string的常用操作方法

JavaScript的字符串就是用''""括起来的字符表示。

查看字符串中所有的方法dir(String.protoTYpe)
1,charAt(index) && chartCodeAt(index) 返回指定索引的字符
str.charAt(index) 返回指定索引位置的字符,和str[索引]的区别在于,当指定索引不存在的时候,中括号返回的是undefined,而charAt获取的是空字符串。
chartCodeAt(index) 在charAt基础上,把获取的字符变为Unicode编码值(对应ASCii)
45-57 :0-9
65-90 :A-Z
97-122:a-z
2,字符串的三种截取方式substr() && substring() && slice()
str.substr(n,m) 从索引n开始,截取m个字符。
str.substring(n,m) 从索引n开始,截取到索引为m处(不包含m)。
str.slice(n,m) 和substring语法一样,区别在于能使用负数做索引。

3,字符串的大小写转换toUpperCase() && toLowerCase()
toUpperCase() 把一个字符串全部转换为大写。
toLowerCase() 把一个字符串全部转换为小写。

4,获取指定字符所在的索引位置str.indexOf("?") $$ str.indexLastOf("?")
str.indexOf("?") 获取“?”第一次出现的索引位置。
str.indexLastOf("?") 获取?最后一次出现时索引位置

案例:判断字符串中是否包含某个字符。

if(str.indexOf('?')>=0){
    // 条件成立就是指包含 某个字符
}

5,字符串的拆分,分割str.split('&')
返回一个字符串数组。按照某一个字符把字符串拆分成数组中的某一项。
String.split() 执行的操作与 Array.join 执行的操作是相反的。
并且支持正则匹配/?|=/g
这里写图片描述

6,字符串替换的方法str.replace() 执行一次智能替换一次,一般需要和正则配合使用。
str.replace('/被替换的字符/g','要替换成的字符')

7,去除空格str.trim() && str.strimLeft() && str.strimRight()
去除字符串首位的空格,去除开始的空格,去除结尾空格。

需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果:

写个案例1:请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。

var arr = ['adam', 'LISA', 'barT'];
function normalize(arr) {
    function toCase(x){
        return x[0].toUpperCase()+x.substring(1).toLowerCase();
    }
    return arr.map(toCase);
}

案例2:把字符串"13579" 转换为数字类型的13579

var str = "13579";
function toNumber(str){
    var arr = str.split('');  // 这里把字符串拆分数组['1','3','5','7','9']
    var arr2 = arr.map(function(x){return x-0});// 这里把字符串转换为数字类型
    var resoult = arr2.reduce(function(x,y){return x*10+y}) ;  
return resoult;
}

案例3:通过利用map() 把字符串转换为整数。

var arr =['1','2','3'];
function toNumber(x){
  return parseInt(x);
}
var resoult =arr.map(toNumber);
//

实际上Array.map()函数在调用时接收3个参数 currentValue,index,array.
而parseInt实际可以接收两个参数,所以在小明的方法中parseInt(currentValue,index);
当parseInt第二个传入的参数小于2时则返回NaN. 所以小明得到了NaN.

案例4:去除数组中相同的元素。使用indexOf()

var arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
var res = arr.filter(function (element, index, self) {
    return self.indexOf(element) === index;
});

*

去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了

*

案例来源廖雪峰老师的教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值