前端学习(四十四) JavaScript-字符串(javaScript)

字符串

最简单的表示方式,双引号或单引号括起来的字符串,例如:“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"

猜你喜欢

转载自blog.csdn.net/zy21131437/article/details/81130885
今日推荐