关于字符串中常用的方法
字符串是基本数据类型,字符串的每一次操作都是值直接进行操作,不像数组一样是基于空间地址操作的,所以不存在原有字符串是否改变这一说,肯定都是不变的
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());