转行前端:字符串处理

104 阅读2分钟

关于字符串中常用的方法

字符串是基本数据类型,字符串的每一次操作都是值直接进行操作,不像数组一样是基于空间地址操作的,所以不存在原有字符串是否改变这一说,肯定都是不变的

charAt/charCodeAt

作用:charAt根据索引获取指定位置的字符

charCodeAt不仅仅获取字符,她获取的是字符对应的Unicode编码值

参数:索引

返回:字符或者对应的编码

slice

作用:str.slice(n,m)从索引n开始找到索引为m处(不包含m),把找到的字符当作新字符串返回

substring

和slice语法一模一样,唯一的区别在于:slice支持负数索引,而substring不支持负数索引

substr

也是字符串截取的方法,用法是:

str.substr(n,m),从索引n开始截取m个字符

toUpperCase/toLowerCase

实现字符的大小写转换

split

和数组中的join相对应,数组中的join是把数组每一项按照指定的连接符变为字符串,而split是把字符串按照指定的分隔符,拆分成数组中的每一项

replace

作用:替换字符串中的原有字符

参数:原有字符,要更换的新字符

返回:替换后的字符串

把”wanwan“替换成”婉菀“

var str="wanwan2020wanwan2020";

str=str.replace('wanwan','婉菀');

//=>在不使用正则的情况下,每执行依次replace只能替换一个”婉菀2020wanwan2020“

str=str.replace('wanwan','婉菀');

//=>"婉菀2020婉菀2020"

==========使用正则==========

str=str.replace(/wanwan/g,'婉菀')

时间字符串格式化

function addZero(val){

 return val<10?'0'+val : val;

}

var str='2020-12-6 23:47:2'

var ary=str.split(' '),

       aryLeft=ary[0].split('-'),

       aryRight=ary[1].split(':');

var month=addZero(aryLeft[1]),

day=addZero(aryLeft[2]),

hour=addZero(aryRight[0]),

minute=addZero(aryRight[1]);

var result=month+'月'+day+'日'+hour+'时'+minute+'分'

console.log(result)

URL地址栏问号参数截取

有一个URL地址:www.wanzi.cn/staff/?name…

{

name:wan,

sex:woman,

age:23

}

1、先找到问号,把问号后面的信息截取下来即可

A、首先我们要验证是否存在#哈希值,存在我们从问号开始截取到#,不存在我们直接截取到字符串的末尾

2、以&进行拆分(数组)

3、遍历数组中的每一项,把每一项在按照=进行拆分,把拆分后的第一项作为对应的属性名,第二项作为属性值进行存储即可

var str='www.wanzi.cn/staff/?name…'

//=>后面的称为哈希hash值,这个值可能有可能没有,我们需要处理,有的话我们截取的时候需要过滤

var indexASK=str.indexOf('?'),

indexWell=str.indexOf('#');

 if(indexWell>-1){

//=>存在#号,我们截取到#号位置即可

str=str.substring(indexASK+1,indexWell);

}else{

//=>没有#号,我们截取到末尾即可   

str=str.substr(indexASK+1);

}

var  ary=str.split('&') ;

obj={};

for(var i=0;i<ary.length;i++){

var item=ary[i],

itemAry=item.split('=');

console.log(itemAry);

var key=itemAry[0],

value=itemAry[1];

obj[key]=value;

}

console.log(obj);

用正则改写

function (pro){

pro.queryURLParameter=function(){

var obj={},

reg=/([^?=&#+])(?:=?([^?=$#]+) )/g;

this.replace(reg,function(){

var key=arguments[1],

   value=arguments[2]||null;

obj[key]=value;

});

return obj

}

}(String.prototype);

var  str='www.wanzi.cn/staff/?name…'

console.log(str.queryURLParameter());