字符串常用方法
-
charAt
- 语法: 变量/字符串.charAt(下标)
- 作用: 根据下标去字符串寻找对应的值
- 返回值: 如果字符串中有对应的下标那么返回对应的值,如果没有返回一个空字符串
// charAt
var str = 'sahbiddaklsdj'
var res = str.charAt(40)
console.log(str[0])
console.log('返回值: ',res)
- charCodeAt
- 语法: 变量/字符串.charCodeAt(下标)
- 作用: 根据下标取字符串中寻找对应的值, 然后找到这个值对应的 unicode 编码
- 返回值: 如果找到返回 unicode 编码, 如果返回 NoN
// charCodeAt
var str = 'QF001'
var res = str.charCodeAt(40) // NoN
var res = str.charCodeAt(0) // 81
console.log(res)
- toLowerCase
- 语法: 变量/字符串.toLowerCase()
- 作用: 把字符串中所有的字母转换为小写
- 返回值: 转换后的字符串
// toLowerCase
var str = 'abcQWE'
console.log('原字符串: ', str)
console.log('toLowerCase: ', str.toLowerCase())
console.log('toUpperCase: ', str.toUpperCase())
console.log('原字符串: ', str)
- toUpperCase
- 语法: 变量/字符串.toUpperCase()
- 作用: 把字符中所有的字母转换为 大写
- 返回值: 转换后的字符串
// toUpperCase
var str = 'abcQWE'
console.log('原字符串: ', str)
console.log('toLowerCase: ', str.toLowerCase())
console.log('toUpperCase: ', str.toUpperCase())
console.log('原字符串: ', str)
复制到的内容
-
substr(MDN 说明建议使用这个方法的时候, 更改为 substring)
- 语法: 变量/字符串.substr(开始下标,多少个)
- 作用: 复制指定区域的字符串
- 返回值: 复制到的内容
-
substring
- 语法: 变量/字符串.substring(开始下标,结束下标)
- 作用: 复制指定区域的字符串
- 返回值: 复制到的字符串
- 注意: 参数包前不包后
-
slice
- 语法: 变量/字符串.slice(开始下标,结束下标)
- 作用: 复制指定区域的内容
- 返回值: 复制到的内容
- 注意
- 参数包前不包后
- 参数可以省略不写
- 参数可以有负数
// 1. substr
var str = 'qwertyuiop'
// 0123456789
console.log(str.slice(2, 3)) // e
console.log(str.slice(2)) // ertyuiop
console.log(str.slice()) // qwertyuiop
console.log(str.slice(5, -1)) // yuio
查询数据
-
concat
- 语法:变量/字符串.concat(数据1, 数据2, 数据3, 数据4. 数据5.......)
- 作用: 合并数据到执行的字符串
- 返回值: 合并后的一个新字符串
// concat
var str = 'value=QF001=QF002=QF003'
console.log(str.concat('!@#!', 'asd', '+-*/'))
console.log('方法使用完毕后的源字符集:' , str)
-
indexOf
- 语法: 变量/字符串.indexOf('要查询的数据' , 开始查询的位置(可以不传, 默认为0))
- 作用: 帮我们去字符串中查询是否有这个数据
- 返回值: 如果找到返回对应的下标, 如果找不到返回 -1
var str = 'value=QF001=QF002=QF003'
console.log(str.indexOf('@')) // -1
console.log(str.indexOf('Q')) // 0
console.log(str.indexOf('Q', 3)) // 6
-
lastIndexOf
- 语法: 变量/字符串.lastIndexOf('要查询的数据', 开始查询的位置(可以不传,默认为0))
- 作用: 帮我们去字符串中查询是否有这个数据
- 返回值: 如果找到返回值对应的下标,如果找不到返回 -1
-
split
- 语法: 变量/字符串.split('分隔符')
- 作用: 根据我们 传递的分隔符,将字符串做一个拆分
- 返回值: 拆分好的字符串, 组成一个数组
- 注意: 如果传递的分隔符是一个空字符串,那么会将整个字符串按照每一个字符,拆分开,放在一个数组中
去空格
- trim
- 语法: 变量/字符串.trim()
- 作用: 去掉字符串左右两边的空格
- 返回值: 去掉空格的字符串
var str1 = ' 1 2 3 '
var str2 = '123'
console.log('源字符串' + str2)
console.log('源字符串' + str1)
console.log('trim' + str1.trim()) // 去掉了字符串两边的空格
-
triimStart/trimLeft
- 语法: 变量/字符串.trimStart() //变量/字符串.trimLeft()
- 作用: 去掉字符串两边的空格
- 返回值: 返回空格后的字符串
-
trimEnd/trimRigrht
- 语法: 变量: /字符串.trimEnd()
- 作用: 去掉字符串右边的空格
- 返回值: 去掉空格后的字符串
查询判断字符
-
includes
- 语法: 变量/字符串.includes('要查询的一些字符')
- 作用: 用于判断字符串中是否包含一段字符
- 返回值: true/false
-
startsWith
- 语法: 变量/字符串.startsWith('要查询的一些字符')
- 作用: 用于判断字符串开头是否为指定的字符
- 返回值: true/false
-
endsWith
- 语法: 变量/字符串.endsWith('要查询的一些字符')
- 作用: 用于判断字符串结尾是否为指定的字符
- 返回值: true/false
-
repalce
- 语法: 变量/字符串.repalce('要查找的字符串', '要替换的内容')
- 作用: 去字符串中找到一个指定的内容,然后将新的内容替换过去
- 返回值: 修复好的字符串
替换违禁词
// 1. var str = 'xxx123xxx456xxx789'
// 这个字符串中, XXX 是一个违禁词, 我们需要将 xxx 替换为 '**'
// 得到的内容: ** 123** 456** 789
var str = 'xxx123xxx456xxx789'
while(str.includes('xxx')) {
str = str.replace('xxx','**')
}
console.log(str)
2. var str = 'XXX123YYY456ZZZ'
这个字符串中, XXX YYY ZZZ 全都是违禁词, 我们需要将 他们三个 替换为 **
得到的内容: **123**456**
var str = 'XXX123YYY456ZZZ'
var arr = ['XXX','YYY','ZZZ' ]
arr.forEach(function(item){
while (str.includes(item)){
str = str.replace(item,'**')
}
})
console.log(str)
Math 数学对象
- Math.random() (返回一个 0-1的随机小数(不包含1))
- Math.round() (四舍五入)
- Math.ceil() (向上取整)
- Math.floor() (向下取整)
封装一个随机函数
要求: 0 ~ 10 以内的一个随机证书(包括10)
function fn() {
var num = Math.random 0~1之间随机取整
num *= 10 // 在 0 ~10 之间随机取整
num = Math.round(num) // 将取到的数字进行四舍五入
}
var obj = {}
for(var i = 1; i < 11000; i ++){
var key = fn() // 每次循环开始创建一个随机数
obj[key] = obj[key] ? obj[key] + 1 : 1
}
console.log(obj)