字符串定义
1.字符串是javascript的一种数据类型 用" " ' ' 括起来的就是字符串
2.字符串定义
通过直接赋值的形式是基本数据类型
通过new关键词是对象类型(引用数据类型)
var str = 'syt'
//使用new 关键字定义
var strObj = new String(true)//返回的是一个字符串
console.log(strObj);//转true为字符串 存入对应的strObj变量
引用数据类型的两个对象的值和对应的两个的引用都不一样
console.log(strObj1 ==s trObj2)//false
console.log(strObj1 ===s trObj2)//false
总结:
1.使用直接赋值 字符串的形式给定当前变量为基本数据类型
2.使用new String() 进行定义的形式 构建是引用类型的对象 new String() 里面的参数可以是任意类型 最后都会调用toString方法转为String
如果不使用 new 关键词 等于没有开辟新的内容来存储引用也就是当前的类型不是对象类型(基本对象类型)
而如果使用了new关键词 等于开辟了一个新的内存空间存储 那么就是对象类型
字符串属性
1.数组是一个容器 字符串也是一个容器
2.length属性 计算字符串的长度 一个字符为一个位置
3.也可以通过下标获取对应的字符 下标也是从0开始到length-1结束
4.数组是可变 字符串是不可变的(是常量 不能修改的量)
5.数组的length属性是可以修改的 字符串的length只能获取不能修改
6.字符串增删改查方法 不能操作原本的字符串 只能返回一个新的字符串
7.不能通过length改变字符串的长度 不能通过下标赋值来改变字符串(只读变量)
字符串常用方法
1.字符串是一个容器 所以对应的存在增删改查的方法 但是由于字符串是只读 增删改的方法是不会修改原本的字符串 而是可以返回一个新的字符串
查询方法
1.通过下标查询对应的字符 相当于字符串的下标
var str = 'abc'
2.通过charAt方法来获取 返回的是字符串 根据下标来获取字符串
3.charCodeAt()可以获取ascii码 获取对应下标位置的字符的ascii码
将ascii码反转为字符 fromcharCode静态方法 利用关键词(内置对象).对应的方法 这个方法为内置的静态方法 解码操作
fromcharCode根据ascii转换为对应的字符串
var codeStr = String.fromcharCode(100);
4.indexof 根据字符串来返回对应的第一次出现的下标 找不到-1
5.lastindexof 也是同样适用
-
.search()方法 可以传入string也可以正则表达式
传入为string类型的时候 根据你传入的参数进行对比 返回第一次对比成功的下标 如果没有返回-1
RegExp 正则对象 一般以两个 // 包起来
正则表达式
1.正则表达式是一个用于匹配的表达式 它可以用来匹配任意的字符串
2.RegExp为正则对象 一般的正则表达式以//包起来 里面书写就是对应匹配的正则表达式
3./abc/匹配abc 的正则
4.正则表达式的常用内容
5.^表示开头 $符号表示结束(要满足他的开头和结束要求更严格)
6,[]表示元素其中一个 {}表示个数(都要包起来)
var reg = /^abc&/ //需要是以a开头 c结尾的
var str = 'cbacbaabcabc'
console.log(str.search);//-1
//
var reg = /[df]/ //表示d和f其中一个
var str = 'abcefg'
console.log(str.search);//4
var reg = /[ac]{2}/ //匹配 aa cc ac ca
var str = 'acbccdc'
console.log(str.search);//0
//
var reg = /[a]+/ //匹配 a aa aaa...
var str = 'cbacbaabcabc'
console.log(str.search);//2
/
//在[]内可以用-表示区间但是必须是正的区间
var reg = /[a-z]/
var reg = /[0-9]/
var reg = /[A-z]/
var reg = /[a-zA-Z1-9]/
\W表示字母数字及下划线 \W大写相反 除了字母数字及下划线都匹配
\s 空白字符 \S非空白字符
替换方法
替换匹配的值 变成另外一个值 返回一个新的字符串
replace()只会找到第一个匹配的 将他替换为指定的字符串
同样支持正则
参数1为对应的搜索条件 (支持string 或者 正则) 参数2为替换的内容
replace('a','c)//将a替换为c 这里只能运行一次 他只会找到第一个a 将a替换为c
截取方法
.substring() 返回新的字符串
var str = 'abcdef'
var newStr = str.substring(1,3)//开始位置下标 截取到结束位置下标 不包含结束位置
分割方法
分割为数组 split( ,1)两个参 第一个以什么分割成数组 第二个表示数量分割后的数量 从前数
var str ='a,b,cd,e'
//分割方法 分割为数组 数组的join连接成字符串
var str = "a,b,cd,e";
//可以根据正则截取 返回值为string类型数组
var strArr = str.split("c"); //根据,来进行分割
console.log(strArr);
var strArr = str.split(",", 2); //limit表示数量
//不写表示所有的全部填入数组 写上去就是填入指定个数的元素到数组(从前往后填入)
console.log(strArr);
concat方法
str1.concat(str2)//将里面的str添加给str1 返回一个新的数组 str1 没变