刚刚在看Javascript犀牛书,看到字符串这一节,平时工作接触到这方面的不多,想着整理下,以备不时只需。
JavaScript的内置功能之一就是字符串连接,如果用‘+'连接两个数字,表示两数相加。但是如果用于字符串,就表示第二个字符加在第一个字符之后。
对于字符串来说,除了有length属性,还有很多其他有用的属性,如:
截取 字符串 起始startistartii, 到endi结束,且含头不含尾,没有
// 如果第二个参数没有, 就默认截取到最后一个。
console.log(str.substring(1,4));
console.log(str.substring(1));
//用法同上,为负数时,就是倒数开始算,一个参数含义是倒数几个。
console.log(str.slice(1,4));
console.log(str.slice(-3));
//字符‘l'首次出现的位置
console.log(str.indexOf('l'));
//字符‘l'最后一次出现的位置
console.log(str.lastIndexOf('l'));
//在位置下标3之后,首次出现的位置
console.log(str.indexOf('l',3));
//用‘,'分割为字符串
console.log(str.split(','));
// 把str中的小写h换成大写H
console.log(str.replace('h','H'));
//讲字符串转化为大写
console.log(str.toUpperCase());
提示:
在javascript中字符串本身是固定不变的,上述方法都会返回一个新的字符串值,并不会影响str本身的值提示:
endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。 repeat方法返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整。
但是,如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0。
ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全
代码生成10位的数值字符串。
console.log('1'.padStart(10,'0') )// "0000000001"
console.log('12'.padStart(10,'0')) // "0000000012"
console.log('123456'.padStart(10,'0')) // "0000123456"
//另一个用途是提示字符串格式。
console.log('12'.padStart(10,'YYYY-MM-DD')) // "YYYY-MM-12"
console.log('09-12'.padStart(10,'YYYY-MM-DD'))// "YYYY-09-12"