JavaScript基础--字符串篇

字符串是我们最常用也是用的最多的数据类型之一,通俗点说我们在js代码中看到单引号或者双引号包裹的就是字符串。很简单的数据类型,稍微多说一点字符串是保存在栈里的基础类型数据。

//声明一个字符串
let str = 'holle badgay'

字符串属性

length

length属性代表了字符串的长度。

let str = 'holle badgay'
console.log(str.length)
//12 空格占用一个位置

字符串方法

获取字符串指定位置值

charAt()

语法:charAt(index)

可以获取到index位置的值

str[index]

类数组方法,获取index位置的值

两种方法都可以获取到具体的值,但是区别是charAt方法获取字段length以外的值返回的是空,而str[index]方法获取到的是undefined。

let str = 'holle badgay'
console.log(str.charAt(7))//a
console.log(str[7])//a
console.log(str.charAt(12))//''
console.log(str.charAt(-1))/''
console.log(str[-1])//undefined
console.log(str[12])//undefined
charCodeAt()

语法:charCodeAt(index)

获取指定位置的值对应的UTF-16代码单元,如果是length以外的会返回NaN,因为数字0-9对应UTF-16中的48-57所以可以做一些判断

let str = 'holle badgay2'
console.log(str.charCodeAt(7))//97
console.log(str.charCodeAt(12))//50
console.log(str.charCodeAt(-1))//NaN
function verify(str){
	Array.from(str).forEach(item=>{
		if(item.charCodeAt(0)>=48&&item.charCodeAt(0)<=57){
			console.log('字符串内有数字',item)
			return true
		}
	})
}
verify(str)//字符串内有数字 2

字符串检索方法

用来检索字符串中是否包含某值或获取某值的位置

indexOf()

语法:str.indexOf(valua,start)

valua:必要,需要检索的字符串值

start:可选,检索开始的位置,

默认从0的位置开始,从左往右,返回要检索的字符串值的位置,如果不存在返回-1(-1这个逻辑很常用)

let str = 'holleh badgay2'
console.log(str.indexOf('h'))//0
console.log(str.indexOf('v'))//-1
console.log(str.indexOf('h',2))//5
lastIndexOf()

语法,用法与indexOf一致,不同的是检索的顺序相反,默认从最后往前检索,从右往左,不过start这个要注意是检索的位置,而不是从后往前数的位置。

let str = 'holleh badgay2'
console.log(str.lastIndexOf('h'))//5
console.log(str.lastIndexOf('v'))//-1
console.log(str.lastIndexOf('h',2))//0
includes()

语法:inCludes(value,start)

value:需要检索的字段值

start:检索开始的位置

includes方法用来判断字符串内是否包含某值,包含返回true,反之返回false。

let str = 'holle badgay2'
console.log(str.includes('h'))//true
console.log(str.includes('v'))//false
console.log(str.includes('h',2))//true
startsWith()

语法用法与includes一致,不同的是该方法是判断是否以检索的字段值为开头。如果是返回true,否则返回false

let str = 'holle badgay2'
console.log(str.startsWith('holl'))//true
console.log(str.startsWith('oll'))//false
console.log(str.startsWith('ba',6))//true
endsWith()

语法用法与startsWith一致,不同的是这个判断的是结尾。需要注意的是该方法的第二个参数是endLength就是检索结束的位置。可以这么理解,检索前endLength个字符。比如检索前五个的时候lle就是true

let str = 'holle badgay2'
console.log(str.endsWith('y2'))//true
console.log(str.endsWith('lle'))//false
console.log(str.endsWith('lle',5))//true

连接字符串

str.concat(str1,str2.....strx)

可以拼接多个字符串

let str = 'holle badgay2'
let str2= 'what the fxxk'
let str3 ='waooooooo!'
let str4 = str.concat(str2,str3)
console.log(str4)//holle badgay2what the fxxkwaooooooo!
//我们日常开发中很少用到这个方法,不是方法用不起,是+号更具性价比
let str4 = str+str2+star3//holle badgay2what the fxxkwaooooooo!

字符串转数组

split()

语法:str.split(separtor,limit)

separtor:必须,分割指定的地方。

limit:可选,这个参数定义了分割后的数组长度。默认是全部。

split方法字符串转数组方法需要注意的是设定分割位置的值是被排除在外的,不会加到返回的数组里,如果是多个重复,可以理解为将这个值作为分隔符了。

let str = 'holle badgay2'
let str2= 'what the fxxk'
let str3 ='waoooaoooo!'
console.log(str.split(''))//['h', 'o', 'l', 'l', 'e', ' ', 'b', 'a', 'd', 'g', 'a', 'y', '2']
console.log(str2.split('',7))// ['w', 'h', 'a', 't', ' ', 't', 'h']
console.log(str2.split(''))//['w', 'h', 'a', 't', ' ', 't', 'h', 'e', ' ', 'f', 'x', 'x', 'k']
console.log(str2.split('a'))//['wh', 't the fxxk']
console.log(str3.split('o'))//['wa', '', '', 'a', '', '', '', '!']
console.log(str3.split('a',4))// ['w', 'ooo', 'oooo!']
Array.from(str)

关于这个方法的详细情况请大家移步数组篇

let str = 'holle badgay2'
console.log(Array.from(str))//['h', 'o', 'l', 'l', 'e', ' ', 'b', 'a', 'd', 'g', 'a', 'y', '2']
ES6展开符

对于展开符我们可以理解为它把值整个都单独的给拆开了,然后排成一排,按照拆开的顺序挨个的展示出来。...str就是展开str,...Array就是把这个Array每一项都拆开。

let str = 'holle badgay2'
console.log([...str])//['h', 'o', 'l', 'l', 'e', ' ', 'b', 'a', 'd', 'g', 'a', 'y', '2']

字符串截取

slice()(个人用的比较多的一个方法)

语法:slice(start,end)

start:必须,截取开始位置,允许接受负值,表示从后往前数,比如-1就是从倒数第一个,-6就是从倒数第六个往后截取。

end:可选,截取结束位置,允许接受负值,表示从后往前数,比如-3就是到倒数第三个结束

slice方法返回一个截取到的字符串,需要注意的是包含开始字符串但是不包括结束,可以理解为大于等于start小于end的值

let str = 'holle badgay2'
console.log(str.slice(0))//表示截取所有 holle badgay2
console.log(str.slice(0,5))//表示截取0到第4个 holle
console.log(str.slice(-1))//表示截取最后一个
console.log(str.slice(-6,-1))//-6到-2位置的 adgay
console.log(str.slice(-6))//表示截取-6往后所有 adgay2
substr()

语法str.substr(start,length)

start:必选,截取开始位置,可以是负数,

length:可选,截取字符串的长度。

substr截取开始位置的字符串,截取length位数。

let str = 'holle badgay2'
console.log(str.substr(0))//表示截取所有 holle badgay2
console.log(str.substr(0,7))//表示截取0开始截取7个字符串 holle b
console.log(str.substr(-1))//表示截取最后一个 2
console.log(str.substr(-6,3))//从倒数第六个截取3个字符串 adg
console.log(str.substr(-6))//表示截取倒数第六个往后的 adgay2
substring()

语法:substring(start,end)

start:必须,截取开始的位置,不可为负数,

end:可选,截取结束的位置,不可为负数

substring方法与slice方法类似,同样有包含开始不包含结束的特性但是该方法不能使用负数,如果使用负数就会返回整个字符串,另外end要大于start的值,不然在执行前会将他们掉换位置进行截取

let str = 'holle badgay2'
console.log(str.substring(0))//表示截取所有 holle badgay2
console.log(str.substring(0,7))//表示截取0开始截取7个字符串 holle b
console.log(str.substring(-1))//表示截取所有 holle badgay2
console.log(str.substring(7,0))//表示截取0开始截取7个字符串 holle b

字符串大小写转换

str.toLowerCase()

将字符串字母转为小写

str.toUpperCase()

将字符串字母转换为大写

let str = 'Holle Badgay2'
console.log(str.toLowerCase())//holle badgay2
console.log(str.toUpperCase())//HOLLE BADGAY2

字符串替换方法

replace()

语法:replace(value,newValue)

value:必须,需要替换的字符串,或者是一个正则表达式匹配的字符串

newValue:必须,用来替换需要替换字符串的字符串

let str = 'Holleh Badgay2'
console.log(str.replace(/h/gi,'D'))//DolleD Badgay2
console.log(str.replace('oll','roronoa'))//Hroronoaeh Badgay2

match()

match(value)

value:必需,可以是一个正则表达式,也可以是一个单独的字符串。不同的是该方法会返回一个数组。如果是单独字符串匹配到以后会返一个数组,数组中包含了索引,原数组等参数。如果是正则表达式包含多个匹配结果,会返回所有的匹配结果组成的数组。如果没有要检索的字符串则返回null

let str = 'Holleh Badgay2'
console.log(str.match('a'))//['a', index: 8, input: 'Holleh Badgay2', groups: undefined]
console.log(str.match(/a/gi))//['a', 'a']
console.log(str.match(/x/gi))//null

search()

语法:search(value)

value:必须,需要检索的字符串,

search会返回需要检索的字符串的位置,返回第一次遇到的

let str = 'Holleh Badgay2'
console.log(str.search('a'))//8

移除开头结尾的空白符

trim()

移除字符串前后的空白符、制表符、tab、换行符等

trimStart()

移除字符串前面的空白符、制表符、tab、换行符等

trimEnd()

移除字符串后面的空白符、制表符、tab、换行符等

let str4 = '\n  前后空格  \n'
console.log(str4.trim()) //前后空格(去掉了前后的空格)
console.log(str4.trimStart())//前后空格  (去掉了前面的空格)
console.log(str4.trimEnd())//  前后空格(去掉了后面的空格)
repeat()

repeat(num)

num:必须,表示需要重复的次数,必须为正整数,为NaN的时候会转为0,为0的时候会返回空

repeat方法可以重复一个字符串num次

let str3 ='waoooaoooo!'
console.log(str3.repeat(2))//waoooaoooo!waoooaoooo!
console.log(str3.repeat(0))//''
console.log(str3.repeat(NaN))//''
console.log(str3.repeat(-0.4))//''

字符串补全

padStart()

语法:padStart(num,value)

num:指定补全位数

value:指定补全的值

该方法目前只用过一次,就是用来补全数字前面的00,求大神补充

let num = (Math.random()*100).toFixed().toString()
console.log(num.padStart(3,'0'))//013
padEnd()

与padStart一致,不同在于是从后面补全。没用过求大神补充实际会用到的情况。

字符串转数字

parseInt()

语法:parseInt(value,radix)

value:必须,需要转换成num的字符串

radix:可选,需要转的进制

let str = 'Holleh Badgay2'
let strNum = '30abc'
let strNum1= '30'
let strNum2 = '0x10'
console.log(parseInt(strNum))//30
console.log(parseInt(strNum1,10))//30
console.log(parseInt(strNum1,6))//18
console.log(parseInt(strNum2))//16
console.log(parseInt(str))//NaN

parseFloat()

语法:parseFloat(str)

返回一个浮点数

let str = 'Holleh Badgay2'
let strNum = '30abc'
let strNum1= '30.001'
let strNum2 = '0x10'
console.log(parseFloat(strNum))//30
console.log(parseFloat(strNum1))//30.001
console.log(parseFloat(strNum1))//30.001
console.log(parseFloat(strNum2))//0
console.log(parseFloat(str))//NaN

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值