字符串
最简单的表示方式,双引号或单引号括起来的字符串,例如:“123”,“字符”,“邮箱地址”,“”
JS采用的是UCS-2
string类型
string类型是字符串的对象类型,可以使用
var str=new String("hello world") //typeof str ----object
var str1="hello" //typeof str1----string
也可以当作工具函数使用
String(true) //输出“true”,类型为string
String(5) //输出“5”,类型为string
string.formCharCode(...codeUnits)
参数为一组序列数字,表示Unicode值,返回的是对应的字符串(只能是16位的字符串,超出则无效了),如果是无效的,那么返回的是一组空字符串
String.fromCodePoint(...codeUnits)
和fromCharCode方法是一样的,参数也是一组序列数字,表示Unicode值,返回值是指定的字符
srt.length
获取字符串的长度,例如:指定邮件地址必须大于6位,那么获取到输入框的字符串后a.length可以判断
string方法
Sting.prototype.charAt(index):从一个字符串中返回指定位置的字符,index:0~字符串长度-1,返回的是指定位置的那个字符,或空字符,示例检测不能以“-”开头
var a=new String(""-aadads");
if(a.chatAt(0)=='-'){alert('不能以'-'开头')};
String.proto.charCodeAt(pos):从一个字符串中返回指定位置的字符编码,pos:0~字符串长度-1,返回的是指定位置的那个字符的字符编码,如果超出长度,返回NaN
var a=new String(""madads");
a.chartCodeAt(0) //也就是返回a,第0个位置也就是字符m的字符编码,109,当然,这个也是十六位的字符编码,比如“你”这个字符返回的字符编码就是错误的
String.prototype.codePointAt(pos):从一个字符串中返回指定位置的字符编码,pos:0~字符串长度-1,返回的是指定位置的那个字符的字符编码,如果超出长度,返回undefined,但是这个可以提取中文,1个中文等于2个字符
String.prototype.startsWith(searchString[,position])
判断字符串是否以给定的子串开头,searchString:搜索的子字符串,prosition:搜索子字符串的开始位置,默认值为0,如果找到了返回true,如果没有找到,返回false
var a="-aaa";
a.startsWith("-") //检测是否是以-开头的字符串,返回true
String.prototype.endsWith(searchString,[,position])
判断字符串是否以给定的子串结尾,searchString:搜索的子字符串,position:搜索子字符串的开始位置,默认值为字符串长度,如果找到了返回true,如果没有找到,返回false
var a="aaa"
a.endsWith('a') //检测是否以a结尾,这边返回true
String方法,获取字符串的位置
String.prototype.indexOf(searchValue[,fromIndex])
获取指定值在字符串中第一次出现的索引,searchValue:要查找的字符串值,fromIndex:开始查找的位置,默认为0,可选,如果找到了,返回指定的位置,如果没有找到,则返回-1
var a='asdzxcqwe'
a.indexOf('d') //返回2
a.indexOf("-") //返回-1
a.indexOf('asd') //返回0,如果是字符串,返回的是第一个字母所在的位置
a.indexOf('asa') //返回-1,因为这个字符串当中不包含asa子字符串
String.prototype.lastIndexOf(searchValue[,fromIndex])
和indexOf对应,获取指定值在字符串中最后一次出现的索引,searchValue:要查找的字符串值,fromIndex:开始查找的位置,默认为0,可选,如果找到了,返回指定的位置,如果没有找到,则返回-1
String.prototype.includes(searchValue[,fromIndex])
判断一个字符串中是否包含搜索的字符串,searchValue:要查找的字符串值,fromIndex:开始查找的位置,默认为0,可选,如果找到了,返回true,如果没有找到,则返回false
var a='asdzxcqwe'
a.includes('d') //返回true
a.includes("-") //返回false
a.includes('asd') //返回true
a.includes('asa') //返回false
string-匹配模式
String.prototype.search(regexp)
从一个字符串中返回与正则表达式匹配的索引值,参数regexp,是一个正则表达式,返回值,是首次匹配项的索引值,如果没有则返回-1,例如
“m163”.search("163") //输出1
String.prototype.match(regexp)
从一个字符串中返回与正则表达式匹配的匹配项,参数regexp,是一个正则表达式,返回值,返回的是数组,如果没有则返回null
“micromajor123”.match("/[0-9]/") //输出 ["1"]
“micromajor123”.match("/[0-9]/g") //输出 ["1","6","3"]
“xmasddd”.match("[A-Z]") //输出null
String.protptype.replace(regex|substr,newSubstr|function)
根据规则替换字符串中的某些值,regex|substr:可以是正则表达式,也可以是字符串,newSubstr|function:可以是字符串,或者是创建字符串的函数,第二个参数是要替换的字符串,返回值是替换后的新字符串
“mmmmm163”.replace("163","###") //输出后的新字符串为:mmmmm###
"mmmmm163".replace("'/[0-9]/","#") // mmmmm#63
"mmmmm163".replace("/[0-9]/g","#") //mmmmm###
如果是要把数字删除,“mmmmm163”.replace("/[0-9]/g","") //只要将第二个改成空字符串就行
String方法-字符串操作
String.prototype.substring(indexStart[,indexEnd])
从一个字符串中返回开始索引和结束索引之间的字符,包含开始但是不包含结束索引位置对应的字符,indexStart:0~字符串长度,indexEnd:表示结束截取的位置,0~字符串长度,可选,如果不写则一直到字符串结束,返回值是开始索引和结束索引之间的子串
“micromajor”.substring(5,7) //"ma",5是开始的位置(包括位置5),7是结束的位置(不包括位置7)
“micromajor”.substring(5) //major
“micromajor”.substring(5,5) //“”,返回的是空字符串
“micromajor”.substring(-5) //"micromajor",会被当作从0开始
“micromajor”.substring(11) //“”,会被当作结束开始
案例:如何获取判断.jpg结尾
var a=value.lastIndexOf(".") //获取.最后一次出现的位置
var fileType = value.substring(a+1) //从.的下一位开始计算,获取到结束位置的字符串,判断是否是jpg结尾的文件
String.prototype.slice(beginSlice[,endSlice])
提取字符串的一部分,返回新的字符串,包括开始但不包括结束索引对应的字符串,beginSlice:开始截取的位置,整数,如果是负数的话, 会被当作字符串长度-beginSlice的值,endSlice:结束位置,整数,可选,如果不填,表示到字符串结尾,另外注意,这边的结束位置如果是负数,那么就是字符串长度+“负数”,返回值是提取的新字符串
“micromajor”.slice(5,7) //"ma",5是开始的位置(包括位置5),7是结束的位置(不包括位置7)
“micromajor”.slice(5) //major
“micromajor”.slice(-3) //"jor",从字符串长度,也就是末尾开始-3的位置开始截取
“micromajor”.slice(1,-1) //"icromajo"
案例:如何获取判断.jpg结尾
var fileType = value.slice(-3) //因为jpg是3位的,直接截取后三位,判断是否是jpg结尾的
String.prototype.substr(start[,length])
从一个字符串中返回从指定位置开始到指定字符数之间的字符,start:开始提取字符的位置,整数,length:截取的字符数量,可选,不填的话表示到字符串结束,返回值是从指定位置开始到指定字符数的字符
“micromajor”.substr(5,2) //ma,从第5位开始,截取2位
“micromajor”.substr(5) //major
“micromajor”.substr(-1) //r,对于负数的处理和slice一样,都是从最后位开始计算,相当于.length-1
案例:如何获取判断.jpg结尾
var fileType = value.substr(-3) //因为jpg是3位的,直接截取后三位,判断是否是jpg结尾的
String.prototype.split([fanhuiu][,limit])
根据分隔符分隔字符串,以数组的形式返回,fanhuiu:分隔符字符串,字符或者是正则表达式,limit:限定返回的分割片段数量,整数,可选
“micro major”.split(“ ”) //["micro","major"],空格分隔符
“micro major”.split(“ ”,1) //["micro"]
“micro2major”.split(“/[0-9]/”) //["micro","major"]
案例:如何获取判断.jpg结尾
var filename = value.split(".") //以.为分隔符,将字符串分隔成数组
var file=filename[filename.length-1] //获取数组中最后一个字符串的值,并判断是否是jpg
String方法-连接
Srting.prototype.concat(string2,string3[,...,stringN])
将一个或多个字符串与原字符串进行拼接,形成一个新的字符串,string2,string3[,...,stringN]:和原字符串连接的多个字符串,返回值是连接后的新字符串
“micromajor”.concat(“@”,“163.com”) //[email protected]
“micromajor”+"163.com" //[email protected],+号也可以用作字符串的拼接,因为简洁,所以一般都用+号
String方法-大小写转换
String.prototype.toLowerCase()
将字符串转换成小写形式,没有参数,返回值就是转换成的小写字符串
“MicroMajor”.toLowerCase() //micromajor
String.proyotype.toUpperCase()
将字符串转成大写形式,没有参数,返回值就是转成的大写字符串
“MicroMajor”.toUpperCase() //MICROMAJOR
Srting.prototype.repeat(count)
将字符串重复一定次数,生成一个新的字符串,参数count是重复的次数,返回值是新生成的字符串
“MicroMajor”。repeat(2) //"MicroMajorMicroMajor"