不要再混淆js的substring和substr了!(附js所有字符串方法)
一、字符串操作方法
js中字符串方法操作有很多:concat、indexOf....
这里只要介绍两种经常混淆的字符串截取方法:substring
、substr
二、从例子入手
let str = 'xiaobe'
//substring(start,end)
let str1 = str.substring(1,2);
//substr(start,length)
let str2 = str.substr(1,2);
console.log(str1); //i
console.log(str2); //ia
可以看到str1输出的长度为1,str2输出长度为2.
substring
概念:返回字符串的一个子串,传入参数是起始位置和结束位置。
不取结束位置的字符
substr
返回字符串的一个子串,传入参数是起始位置和长度
substr是根据长度取值,所以上面例子,两个方法虽然参数相同,但是返回值不同
三、特殊情况
substring
- 仅有一个入参
let str = 'xiaobe'
let str1 = str.substring(1);
console.log(str1); //iaobe
当只有一个入参的时候,会自动输出后面所有字符
- 入参的start>end
let str = 'xiaobe'
let str1 = str.substring(3,1);
console.log(str1); //ia
当读取位置大于结束位置的时候,substring会自动调整位置
- 如果end为负数
let str = 'xiaobe'
let str1 = str.substring(3,-1);
console.log(str1); //xia
当end为负数的时候,substring会输出start之前的字符
注意,start的最后一位依然是不会取到的
substr
- end为负数
let str = 'xiaobe'
let str1 = str.substring(3,-1);
console.log(str1); //
substr会输出空。毕竟length为负数,自然不会输出东西
四、扩展
其实substring和substr的关系与slice和splice关系相似
slice(start,end)
用法和substring类似,取值:[start,end)
//当end为负数时候
let str = 'xiaobe'
let str3 = str.slice(1,-1);
console.log(str3) //iaobe
substring会倒序输出,而slice会输出后续全部
slice方法可用于字符串和数组
下面介绍一个和slice方法很像的方法,但是这个方法仅仅使用于数组
splice(start,length,item1,item2....)
参数 | 描述 |
---|---|
start | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置 |
length | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1...itemX | 可选。向数组添加的新项目。 |
splice会改变原数组 slice不会。
五、js字符串方法大全
- concat
将两个或多个字符的文本组合起来,返回一个新的字符串。
var a = "hello";
var b = ",world";
var c = a.concat(b);
alert(c);
//c = "hello,world"
- indexOf
//返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
var index1 = a.indexOf("l");
//index1 = 2
var index2 = a.indexOf("l",3);
//index2 = 3
- charAt
//返回指定位置的字符。
var get_char = a.charAt(0);
//get_char = "h"
lastIndexOf
返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。
var index1 = lastIndexOf('l');
//index1 = 3
var index2 = lastIndexOf('l',2)
//index2 = 2
- match
//检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null。
var re = new RegExp(/^\w+$/);
var is_alpha1 = a.match(re);
//is_alpha1 = "hello"
var is_alpha2 = b.match(re);
//is_alpha2 = null
- substring
//返回字符串的一个子串,传入参数是起始位置和结束位置。
var sub_string1 = a.substring(1);
//sub_string1 = "ello"
var sub_string2 = a.substring(1,4);
//sub_string2 = "ell"
- substr
//返回字符串的一个子串,传入参数是起始位置和长度
var sub_string1 = a.substr(1);
//sub_string1 = "ello"
var sub_string2 = a.substr(1,4);
//sub_string2 = "ello"
- replace
//用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
var result1 = a.replace(re,"Hello");
//result1 = "Hello"
var result2 = b.replace(re,"Hello");
//result2 = ",world"
- search
//执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
var index1 = a.search(re);
//index1 = 0
var index2 = b.search(re);
//index2 = -1
- slice
//提取字符串的一部分,并返回一个新字符串(与 substring 相同)。
var sub_string1 = a.slice(1);
//sub_string1 = "ello"
var sub_string2 = a.slice(1,4);
//sub_string2 = "ell"
- split
通过将字符串划分成子串,将一个字符串做成一个字符串数组。
var arr1 = a.split("");
//arr1 = [h,e,l,l,o]
length
返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
var len = a.length();
//len = 5
- toLowerCase
//将整个字符串转成小写字母。
var lower_string = a.toLowerCase();
//lower_string = "hello"
toUpperCase
将整个字符串转成大写字母。
var upper_string = a.toUpperCase();
//upper_string = "HELLO"
不要再混淆js的substring和substr了!(附js所有字符串方法)的更多相关文章
- js中substring和substr的用法
js中substring和substr的用法 substring 方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引 参数 ...
- js中substring与substr的学习。
今天在工作的过程中,看到js中两个双胞胎函数.分别是substring与substr.顿时被两个可恶的家伙给迷惑住了,不知道具体有什么作用.. 先来看看substring手册是怎么介绍的. 手册解释的 ...
- js中substring和substr的用法 (转)
1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数 ...
- js 中 substring() 和 substr() 提取字符
提取字符串substring() substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法: stringObject.substring(startPos,stopPos) ...
- js中substring和substr的用法比较
推荐使用substring 方法 stringObject.substring(start,stop) stringObject.substr(start,length) 定义和用法 提取 ...
- JS中substring与substr的区别
Substring: 该方法可以有一个参数也可以有两个参数. (1) 一个参数: 示例: var str=“Olive”: str.substring(3); 结果:“ve” 说明:当substri ...
- JS中substring与substr的用法
substring方法用于提取字符串中介于两个指定下标之间的字符 substring(start,end) 开始和结束的位置,从零开始的索引javascript 参数 描述 start 必需.一个非负 ...
- js中substring和substr用法与区别
String.substring( ):用于返回一个字符串的子串 用法如下:string.substring(from, to) 其中from指代要抽去的子串第一个字符在原字符串中的位置 to指代所要 ...
- substring和substr、$.extend()、$.fn.extend()、(function($){….})(jQuery)的简易讲解
1. JS中substring与substr的区别 Substring: 该方法可以有一个参数也可以有两个参数. l 一个参数: 示例: var str="Olive": ...
随机推荐
- Symfony2 UserSecurityEncoder实现自己的验证方式
fosuserbundle默认使用sha512加密 如果要实现自己的加密方式 需要继承Symfony\Component\Security\Core\Encoder\BasePasswordEncod ...
- linux--- sort,uniq,cut,wc命令
1.sort [-fbMnrtuk] [file or stdin] -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序,例如 J ...
- 详解BOM头以及去掉BOM头的方法--踩过BOM的大坑
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM).它是一串隐藏的字符,用于让记事本等编辑器识别 ...
- Prometheus监控学习笔记之解读prometheus监控kubernetes的配置文件
0x00 概述 Prometheus 是一个开源和社区驱动的监控&报警&时序数据库的项目.来源于谷歌BorgMon项目.现在最常见的Kubernetes容器管理系统中,通常会搭配Pro ...
- 【Selenium专题】元素定位之CssSelector
CssSelector是我最喜欢的元素定位方法,Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath loc ...
- MySQL5.7.25解压版安装详细教程
MySQL5.7.25解压版安装详细教程 安装步骤: 1.首先,你要下载MySQL解压版,下载地址:https://www.mysql.com/downloads/,图解: 2.解压安装包,根据自己的 ...
- API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd(转)
前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作 ...
- MVC HTML页面使用
解决HTML <system.webServer> <validation validateIntegratedModeConfiguration="false" ...
- Linux 用 root 用户都无法删除的文件如何删除
要查看隐藏文件用 ls -a 看文件有没有被锁定(i属性) [root@linux ~]# lsattr YourFile ---i---------- YourFile 去除i属性再删除 [root ...
- docker 容器配置tocmat时间不统一
1.在tomcat配置文件bin下 vim setenv.sh #!/bin/bashCATALINA_OPTS='-Duser.timezone=Asia/Shanghai'export CAT ...