day7 字符串
一、字符串的属性
// 字符串也是一个容器
// 属性1 length属性 计算字符串的长度 一个字符为一个位置
var str='123'
console.log(str.length);//3
// 属性2 也可以通过下标获取对应的字符 下标也是从0开始 到length-1结束
// 属性3 数组是可变的 字符串是不可变的
// 数组的length属性是可以修改的 字符串的length只能获取不能修改
// 字符串的增删改查 不能操作原本的字符串 只能返回一个新的字符串
// 不能通过length改变字符串长度
// 不能通过下标赋值来改变字符串
// 字符串不能改 因为他是常量 不能修改的量(只读的量)
二、字符串的方法
// 字符串是一个容器 所以对应存在增删改查的方法 但是由于 字符串是只读的 增删改的方法不会修改原本字符串 二是返回一个新的字符串
// 通过下标查询对应的字符 相当于字符串的下标获取
charAt 返回的是字符串根据对应的下标来返回字符串
var str='abc'
console.log(str.charAt(0));//等同于str[0]
// 获取ASCII码 获取对应位置下标位置的字符的ASCII码
console.log(str.charCodeAt(0));//获取小标为0位置的字符a的Ascii 码
// 将ASCII码反转为字符 这个方法为系统内置的静态方法
// 100的字符为d
// fromCharCode 根据ASCII码转换为对应的字符串 ASCII解码为字符串
String.fromCharCode
// indexOf 根据字符串来返回对应的第一次出现的下标 找不到返回-1
// lastIndexOf() 根据字符串返回第一次出现的下标 从后往前找
// 2.search方法
// 字符串的查询方法
var str='cbabababaabc'
// 查询方法 返回第一次匹配的位置 返回值为当前找到的下标
// 找不到返回-1
// 传入为string类型的时候 根据你传入的参数进行对比 返回第一次对比成功的下标 如果没有返回-1
// RegExp 正则对象 一般以两个//包起来
var reg=/abc/
console.log(str.search(reg));//返回为6
// 什么是正则表达式 正则表达式是一个用来匹配的表达式 它可以用来匹配任意的字符串
// RegExp为正则对象 一般的正则表达式以//包起来 里面书写的就是对应匹配的正则表达式
// /abc/匹配abc正则
// 正则表达式的常用内容
// 以^开头 以$符号结尾
var reg=/^abc$/
var str='cbabababaabc'
console.log(str.search(reg))//-1
var str='abc'
console.log(str.search(reg))//0
// []表示元素的其中一个 {}表示个数
var str='abcdefg'
var rex=/[abc]/ //表示abc中的其中一个
console.log(str.search(rex));//0
var str='abcdefg'
var rex=/[ab]{2}/ //表示a,b加起来是两个就可以 表示个数是两个
console.log(str.search(rex))
var str='abcdefg'
var rex=/[ad]{2}/ //表示个数是两个 可以是a也可以是d
console.log(str.search(rex))//search搜索的内容必须要连在一起 确保返回的下标是一个
var str='aabccdefg'
var rex=/[ac]{2}/ //匹配的是aa 或cc 或ac 或ca都可以
console.log(str.search(rex))//0
// +表示一个或多个
var str='abccd'
var reg=/[a]+/ //匹配 a aa aaa aaaa
console.log(str.search(reg))//2
//在[]内可以用-表示区间但是必须是正的区间
var rex=/[A-Z]/ //匹配的是A B C D-Z 26个字母
var rex=/[0-9]/ //匹配的是0-9 10个数值
var rex=/[a-zA-Z1-9]/
var rex=/[A-z]/ //正区间 以ASCII码
// \w表示字母数字及下划线 \W 相反 除了字母数字及下划线其他都匹配
var rex=/\w/ //匹配字母数字下划线
var str='_DGDEDE'
console.log(str.search(rex));//0
// \s空白字符 \S非空白字符
//3. replace方法
// 替换匹配的值 变成另外一个值 返回一个新的字符串
var str = "ababababa"
var newStr = str.replace( 'a' , ' c')//将a替换为c这里只能运行一次他只会找到第一个a 将a替换为c//replace只会找到第一个匹配的将他替换为指定的字符串
console.log(newStr);
//将所有的a替换为c
//循环遍历indexOf找到第一个下标如果没有找到就返回-1
for(var i=0;i<str.length;i++){
if(str.indexOf( 'a')!=-1){
str = str.replace( 'a' , 'c')//进行替换将替换的完的数据设置给对应的字符串}else[//I
}else{
break
}
}
console.log(str);
// 4.substring
// 截取方法 返回新的字符串
var str='svggddgd'
var newstr=str.substring(1,3)//开始位置下标截取到结束位置下标 不包含结束位置
// sub 将内容填充到sub 的html标签中 然后生成一个新的字符串进行返回
// substr(2,3) 从下标为2的位置开始 截取三个 没有写个数截取到最后
// slice(2,4) 从下标为2的位置开始到下标为4(不包括4) 不写开始和结束位置 就是从开始截取到最后
//5.split()
// 分割方法 分割为数组 数组的join是连接成字符串
var str='abdhhdhd'
// 可以根据正则截取 返回值为string类型数组
var strarr=str.split()
console.log(strarr);
var strarr=str.split(',')//不写表示所有的全部填入数组
var strarr=str.split(',',1) //limit表示数量 写上去就是填入指定个数的元素到数组(从前往后填)
// 6.
// 转大写 转小写 全部转换
var str='AFFghdede'
var str1=str.toLocaleLowerCase()//转小写
console.log(str1);
var str2=str.toUpperCase()//转大写
console.log(str2);
三、Math方法
// Math 数学他有一系列数学计算的函数 (静态函数)
// 静态属性 Π
console.log(Math.PI);
console.log(Math.E);
//关于Math的静态方法
//求大小max最大值min最小值
console.log(Math.max(1,2));//返回2
console.log(Math.min(1,2));//返回1//关于取整的几个方法
//向下取整3.9 3
console.log(Math.floor(3.9));//3
//向上取整3.14
console.log(Math.cei1(3.1));// 4
//四舍五入3.1 返回3 3.9返回4
console.log(Math.round(3.5));//4
console.log(Math.round(3.4));//3
//幂次方
console.log(Math. pow(1,10));//1的10次方1
console.log(Math.pow(2,3));//2的3次方8
//开平方
console.log(Math.sqrt(9));1/3
//随机数
console.log(Math.random());//随机生成0-1的数_不包含1包含0(随机数没有均衡随机)
//取绝对值 永远是正数
console.log(Math.abs(-2));//2

浙公网安备 33010602011771号