Javascript中字符串相关经常使用的使用方法总结

 

 JavaScript的内置功能之一就是字符串链接,若是用‘+’链接两个数字,表示两数相加。可是若是用于字符串,就表示第二个字符加在第一个字符以后。javascript

var num=1+2;前端

console.log(num);java

var msg='hello'+'world';ip

console.log(msg);

对于字符串来讲,除了有length属性,还有不少其余有用的属性,如: 
 字符串

var str='hello,world';string

console.log(str.length);it

console.log(str.charAt(0)); //第一个字符 console

console.log(str.charAt(str.length-1)); // 最后一个字符 ast

//substring(starti,endi), 截取 字符串  起始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自己的值
值得注意的是,在ES6中,给字符串增长了不少新的方法,如:
 

var s = 'Hello world!';

// 返回布尔值,表示参数字符串是否在源字符串中的头部

console.log(s.startsWith('Hello')) // true

//endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部

console.log(s.endsWith('!')) // true

// includes()返回布尔值,表示是否找到了参数字符串

console.log(s.includes('o')) // true

上述的三个方法都支持第二个参数,表示开始搜索的位置

var s = 'Hello world!';

console.log(s.startsWith('world', 6)) // true

console.log(s.endsWith('Hello', 5))// true

console.log(s.includes('Hello', 6)) // false
 

提示:endsWith的行为与其余两个方法有所不一样。它针对前n个字符,而其余两个方法针对从第n个位置直到字符串结束。
repeat方法返回一个新字符串,表示将原字符串重复n次。
 

console.log('x'.repeat(3)) // "xxx"

console.log('hello'.repeat(2)) // "hellohello"

console.log('na'.repeat(0)) // ""

参数若是是小数,会被取整。

console.log('na'.repeat(2.9)) // "nana"

//若是repeat的参数是负数或者Infinity,会报错。

console.log('na'.repeat(Infinity))

// RangeError

console.log('na'.repeat(-1))

// RangeError

可是,若是参数是0到-1之间的小数,则等同于0,这是由于会先进行取整运算。0到-1之间的小数,取整之后等于-0,repeat视同为0。

console.log('na'.repeat(-0.9)) // ""

//参数NaN等同于0

console.log('na'.repeat(NaN)) // "

//若是repeat的参数是字符串,则会先转换成数字

console.log('na'.repeat('na')) // ""

console.log('na'.repeat('3')) // "nanana"

ES2017 引入了字符串补全长度的功能。若是某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全

//padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

console.log('x'.padStart(5, 'ab')) // 'ababx'

console.log('x'.padStart(4, 'ab')) // 'abax'

console.log('x'.padEnd(5, 'ab')) // 'xabab'

console.log('x'.padEnd(4, 'ab')) // 'xaba'

//若是原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

console.log('xxx'.padStart(2, 'ab')) // 'xxx'

console.log('xxx'.padEnd(2, 'ab')) // 'xxx'

//若是用来补全的字符串与原字符串,二者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

consoe.log('abc'.padStart(10, '0123456789'))

// '0123456abc'

//若是省略第二个参数,默认使用空格补全长度。

console.log('x'.padStart(4)) // '   x'

console.log('x'.padEnd(4)) // 'x   '

//padStart的常见用途是为数值补全指定位数。下面代码生成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"

 

能够进群交流~WEB前端互动交流群434623999  

相关文章
相关标签/搜索