substr和slice的基础用法(普通的字符串)
前言
substr() 和 slice() 都可以对字符串进行截取操作,它们的使用方法有些类似js 字符串 substr,最大的区别就是第二个参数 , substr() 的第二个参数 是 截取字符串的长度 ,slice() 的第二个参数是 截取字符串的 结束下标。(个人感觉两者的区别不大,它们的作用类似)
substr() 语法
在 javascript中,substr( )方法用于从指定索引位置截取指定长度的子字符串,它包含两个参数,第一个参数表示准备截取的子字符串起始下标,第二个参数表示截取的长度 (注意 和 slice 区分一下 )
string.substr(start,length)
参数:
start(必需):要截取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说, -1 表示最后一个字符,-2 表示倒数第二个字符js 字符串 substr,以此类推。这对于左侧字符长度不固定时非常有用。
length(可选):表示截取的长度。如果省略了该参数,则默认截取开始位置至原字符串的结尾。
注意:substr( ) 方法不会改变原来的字符串。
基础用法(普通截取字符串)
下标从 0 开始
var str = '123456';
// 截取整个字符串
console.log(str.substr(0)); // 123456
// 从索引位置2开始截取3个长度的字符
console.log(str.substr(2,3)); // 345
// 从倒数第4个字符开始截取至原字符串的结尾
console.log(str.substr(-4)); // 3456
// 从倒数第2个字符开始截取2个长度的字符
console.log(str.substr(-2,2)); // 56
// 输出原字符串 , 不会改变原字符串
console.log(str); // 123456
截取日期
很多时候我们从数据库获取的时间都是 年-月-日 时:分:秒 的格式,而我们在页面上通常都会只显示年月日,如果只有少数几个数据的话,使用格式化时间有点麻烦,最简单操作的就是直接截取自己想要的数据。
var time ="2022-09-07 14:27:56";
var Time = time.substr(0,10);
获取扩展名
获取字符串的最后一个点号的下标位置,然后从其后的位置开始截取 4 个字符。
var s = "hello world!欢迎来到PHP中文网!https://www.php.cn/course/list/56.html";
var b = s.substr(s.lastIndexOf(".") + 1, 4); //截取最后一个点号后4个字符
如果省略第二个参数,则表示截取从起始位置开始到结尾的所有字符。考虑到扩展名的长度不固定,省略第二个参数会更灵活。
var b = s.substr(s.lastIndexOf(".") + 1);
slice() 语法
slice( )方法包含两个参数,第一个参数表示准备截取的子字符串起始下标,第二个参数表示截取的结束下标(注意 和 substre 区分一下)
string.slice(start , end)
参数:
start(必需):要截取的子串的起始下标。必须是数值。可以是负数
end(可选):表示截取的结束下标。如果省略了该参数,则默认截取开始位置至原字符串的结尾。( 注意这个结束下标是取不到的,整个的范围是一个左闭右开的区间 ,比如 slice(0,1) 意思是 截取 [0,1) 位置的字符,就只有一个字符被截取)
注意:substr( ) 方法不会改变原来的字符串。
基本用法
var str = '123456';
// 截取整个字符串
console.log(str.slice(0)); // 123456
// 从索引位置2开始截取到下标3的字符
console.log(str.slice(2,3)); // 3
// 从倒数第4个字符开始截取至原字符串的结尾
console.log(str.slice(-4)); // 3456
// 输出原字符串 , 不会改变原字符串
对比两个方法
substr() 的第二个参数 是 截取字符串的长度 ,
slice() 的第二个参数是 截取字符串的 结束下标。
两个方法都不会改变原字符串
var str = '123456'
console.log(str.slice(1,2)) // 2
console.log(str.substr(1,2)) // 23
文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复
文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
热评文章
最新评论
Z.
11月29日
博主你好,Deng插件,这个点击不进去,提示这个(Warning: require_once(/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php): failed to open stream: No such file or directory in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26
Fatal error: require_once(): Failed opening required '/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26)
YangY
12月5日
支持:滑稽: