程序笔记   发布时间:2022-07-18  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了前端JS对字符串处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

JS字符串和数组之间的转换

1、字符串转换为数组

var String = '123,456,789';
var StringResult = String.split(',');
console.log(StringResult) //输出["123", "456", "789"]
 
var String2 = 'abcdef'
var String2Result = String2.split('')
console.log(String2Result) //输出['a','b','c','d','e','f']
String2.split(",").map(number);//输出[123,456,789]
JSON.parse("[" + String + "]"); //输出[123,456,789]
 
2、数组转换为字符串
var array = ['abc''def''hig']
var arrayResult = array.join(',')
console.log(arrayResult) // 输出"abc,def,hig"
array.toString()//输出"abc,def,hig"

js中截取字符串的三个方法 subString()、substr()、slice()

subString

1.subString() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。

//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(1,5)
< "1234"

2.如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。

//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(1,1)
< ""

3.如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(5,1) //=>a.subString(1,5)
< "1234"

4.如果 start 和 stop 有负数,那么会把该参数自动转为0,然后继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(5,-1) //=>a.subString(5,0) => a.subString(0,5)
< "1234"

5.如果 start 和 stop 有正小数(负数直接进行第4条),那么会把该参数向下取整,然后继续上述规则。

 
//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(5,2.5) //=>a.subString(5,2) => a.subString(2,5)
< "234"

6.如果 start 和 stop 有字符串,那么会先进行parseInt(),如果转换结果为NaN,那么就转换为0,其余情况继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.subString(5,'2.5') // =>a.subString(5,2) => a.subString(2,5)
< "234"
> a.subString(5,'ss') // =>a.subString(5,2) =>a.subString(5,0) => a.subString(2,5)
< "234"

其他情况就没有一一测试了,当然正常情况下尽量不要这么干,毕竟语法上已经规定了是整数。

substr

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

语法

String.substr(start,length)

该方法与subString()最大的区别在于第二个参数是你需要截取字符串的长度,而不是位置。

1.substr() 方法返回的子串从 start 处的字符开始(包括)往后截取length长度,如果超过最末端就到最末端结束。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(1,5)
< "12345"
> a.substr(1,15) //只会到最末端,多了没用
< "123456789"

2.start可以取负值,表示从字符串尾部往头部开始数(从右到左,注意是从1开始,比如-1 指字符串中最后一个字符),但是截取长度还是从左到右,如果超过最末端就到最末端结束。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(-4,2) //-4表示从右开始数第4个,就是'6',然后取2个长度的字符串,就是'67'
< "67"

3.如果length负值,那么会直接当成0处理,最终返回""

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(4,-2) // => a.substr(4,0)
< ""

4.如果start或者length为小数,那么会截取小数部分。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(1.2,5.2) // => a.substr(1,5)
< "12345"

5.如果 start 和 length 有字符串,那么会先进行parseInt(),如果转换结果为NaN,那么就转换为0,其余情况继续上述规则。

 
//chrome控制台
> var a = '0123456789'
< undefined
> a.substr('aa','5') // => a.substr(0,5)
< "01234"

slice

1.slice() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(1,5)
< "1234"

2.当start或者end为负值时,定位方式和substr一直,从右往左数,从1开始。

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(1,-1)//起始点从第1(包括)开始,结束点为从右往左数第1个(不包括)
< "12345678"

2.startend的顺序始终是从左到右,如果最终start的位置在end的右边,那么返回''

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(2,1)//2所在的位置是'2',1所在的位置是'1',从2=>1,方向相反,返回为空
< ""
> a.slice(-2,1)//-2所在的位置是'8',1所在的位置是'1',从8=>1,方向相反,返回为空
< ""
> a.slice(-2,-1)//-2所在的位置是'8',-1所在的位置是'9',从8=>9,方向正常,返回为'8'
< "8"

3.其他情况和subString处理方式一致

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice('xx','5.5')// => a.slice(0,5)
< "01234"
@H_995_618@小节

从上面测试得出结论,subString不支持负值,其他两种方式均支持负数表示,并且是从右边第一位开始计数。substr的第二个参数是长度,这是和其他两种方式最大的不同之处,slice的方向性比较强,永远是从start=>end对应左=>右

 

 

 

大佬总结

以上是大佬教程为你收集整理的前端JS对字符串处理全部内容,希望文章能够帮你解决前端JS对字符串处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。