JS关于slice() substr() substring()提取字符串方法
1.三个提取字符串的方法,都可接受一个或者两个参数,对slice(a,b)和substring(a,b)来说,他们的第一个参数a表示字符串起始的位置,第二个参数b表示字符串结束的位置(三个提取方法都遵循左闭右开区间)。
substr()方法第一个参数表示起始位置,第二个参数表示提取字符串的数量,这是与前两个方法不同的地方
2.三个方法当其中有负数时,slice()方法将所有负参数当成字符串的总长度+负参数值,下面代码也详细解释。substr()方法第一个参数为负数时处理方式和slice()方法相同,第二个参数为负数时转换成0;
substring方法将所有负参数转换成0,下面代码详细解释:
//此处只是js代码,需要node或者用html引入js文件才能使用
let stringvalue='hello world';//let声明块作用域,用var声明也可
document.write(stringvalue.slice(3)+' ');//lo world
document.write(stringvalue.substr(3)+' ');//lo world
document.write(stringvalue.substring(2)+' ');//llo world
document.write(stringvalue.slice(3,7)+' ');//lo w
document.write(stringvalue.substr(3,7)+' ');//lo worl
document.write(stringvalue.substring(2,5)+' ');//llo
document.write('||||');
document.write(stringvalue.slice(-4)+' ');
orld 当slice任一个参数为负数时,-4代表stringvalue字符串长度+(-4);
document.write(stringvalue.substr(-4)+' ');
//orld 当substr的第一个参数为负数时,-4代表stringvalue字符串长度+(-4);
//substr第二个参数为负数时,第二个参数变成0;
document.write(stringvalue.substring(-4)+' ');//hello world
substring任一个参数为负数,则该参数转化成0;
document.write(stringvalue.slice(3,-4)+' ');//lo w
slice第二个参数为负数时,计算后结果不能比第一关参数小
document.write(stringvalue.substr(-5,4)+' ');//worl
document.write(stringvalue.substring(3,-4)+' ');//hel
stringvalue第二个参数计算为负数转换成0可比第一个小如(3,-4)–>(3,0)–>(0,3);
最终表示0-3索引
字符串中定位子字符串方法indexOf()和lastIndexOf()
let stringvalue="hello world";
document.write(stringvalue.indexOf("o")+' ');
4定位的hell(o),这个以及以下计算索引值都从正序开始;
document.write(stringvalue.lastIndexOf("o")+' ');//7定位的w(o)rld
document.write(stringvalue.indexOf("o",6)+' ');//7定位的w(o)rld
document.write(stringvalue.lastIndexOf("o",6)+' ');//4定位的hell(o)