在js中用单(双)引号包裹起来的都是字符串

1
var str = 'welcome to credan!'

字符串就是由零到多个字符串组成的

第一个字符索引0
第二个字符索引1

有length的属性,存储的是当前字符串中字符的个数(字符串的长度)

以数字作为索引,从零开始的

str[0] -> ‘w’ 第一个字符
strlength-> 46
str[str.length-1] -> ‘!’ 最后一个字符
str[100] -> undefined 如果指定的索引不存在获取的结果是undefined

真实项目中,我们经常操作字符串,此时我们需要掌握常用的一些字符床操作方法

console.dir(String.prototype)

charAt && charCodeAt

str.charCodeAt(索引)

在charAt 基础上,把获取的字符变为Unicode编码值(对应ASCll码表)

  • 48-57 0-9
  • 65-90 A-Z
  • 97-122 a-z

String.fromCharCode(十进制的Unicode值),把值按照ascll码表中的信息,转为原有字符,charCodeAt正好对应

image.png

substr && substring && slice

  • 实现字符串截取的三个办法
  • str.substr(n.m) : 从索引n开始,截取m个字符
  • str.substring(n,m):从索引n开始,截取到索引为m处(包含m),把找到的部分截取
  • str.slice(n,m):和substring语法意义,区别在于slice支持一负数做索引

image.png

当索引是负数的时候,浏览器在处理的时候,是用字符串的总长度加上负数索引,然后按照正数处理操作

细节:

  • 如果只传递了n(str.substr(n)/str.substring(n)),相当于索引n开始的一直截取到字符串的末尾
  • 如果传递的索引超出最大限制,也是吧能截取的部分截取掉即可
  • 如果一个参数都不传递:相当于吧证书字符串都截取(字符串的克隆)

image.png

indexOf && lastIndexOf

  • str.indexOf 获取当前字符在字符串中第一次出现位置的索引
  • str.lastIndexOf 获取的是最后一次出现位置的索引

image.png

如果当前字符在字符串中没有出现过,结果是-1:我们根据这个规律可言验证一下当前字符串中是否包含某个字符

1
2
3
4
5
6
7
if(str.indexOf('?')===-1){
// => 没有出现过
}

if(str.indexOf('?')>=-1){
// => 出现过
}

split

str.split 按照某个字符串分成数组中的某一项,和数组中的join方法是对应

image.png

replace

str.replace 实现字符的替换
执行一次replace 只能替换一次,如果有好几个都需要替换,在不适用正则的情况下,我们需要执行很多次replace

image.png

有些需求及时执行很多次repalce也实现不了,此时需要使用正则处理,真实项目中replace一般都是和正则搭配使用的

image.png

trim && trimLeft && trimRight

  • str.trimLeft : 去除字符串开始的口空格
  • str.trimRight : 去除字符串结尾的口空格
  • str.trim 去除字符串首位的空格

image.png

获取地址栏的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function queryURLPrameter(url){
// => url 传递的参数
var quesIndex = url.indexOf('?'),
obj = {}
if(quesIndex === -1){ // url中没有问号传参 直接返回空
retrun obj;
}
url = url.substr(quesIndex + 1);
var ary = url.split('&');
for(var i =0;i<ary.length;i++){
var curAry = ary[i].split('=');
obj[curAry[0]] = curAry[i];
}
return obj
}
1
2
3
4
5
6
7
8
9
10
11
12
String.prototype.myQueryURLParameter = function
myQueryURLParamter(){
var obj = /([^=?&]+)=([^=?&]+)/g;
this.replace(reg,function(){
var arg = argments;
obj[arg[1]] = arg[2]
})
return obj;
}

var str = 'https://www/baidu.com/s?wd=1233213&issp=1';
console.log(str.myQueryURLParameter());