文档章节

JS 字符串常用方法总结

o
 osc_fmg49rzg
发布于 2019/03/20 09:36
字数 1246
阅读 15
收藏 0

精选30+云产品,助力企业轻松上云!>>>

查找字符串

1、indexOf(start, end): 返回某个指定的子字符串在字符串中第一次出现的位置

var str = "Hello World";
var str1 = str.indexOf("o");
var str2 = str.indexOf("world");
var str3 = str.indexOf("o", str1 + 1);
console.log(str1);   // 4 默认从下标0开始查找
console.log(str2);   // -1 没有找到
console.log(str3);   // 7

2、lastIndexOf(start, end): 返回某个指定的子字符串在字符串中最后出现的位置

var str = "Hello World";
var str1 = str.lastIndexOf("o");
var str2 = str.lastIndexOf("world");
var str3 = str.lastIndexOf("o", str1 - 1);
console.log(str1); // 7
console.log(str2); // -1
console.log(str3); // 4

3、charAt(index): 返回指定下标位置的字符。如果index不在0-str.length(不包含str.length)之间,返回空字符串。

var str = "hello world";
var str1 = str.charAt(6);
console.log(str1);        // 6

4、charCodeAt(): 返回指定下标位置的字符的unicode编码,这个返回值是 0 - 65535 之间的整数。

var str = "hello world";
var str1 = str.charCodeAt(1);
var str2 = str.charCodeAt(-2); //NaN
console.log(str1); //101

注意:如果index不在0-str.length(不包含str.length)之间,返回NaN。

截取字符串

5、slice(start, length): 返回字符串中提取的子字符串。 字符串分割成数组,length可选,分隔数组长度 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

var str = "Hello World";
var str1 = str.slice(2);     //如果只有一个参数,则提取开始下标到结尾处的所有字符串
var str2 = str.slice(2, 7); //两个参数,提取下标为2,到下标为7但不包含下标为7的字符串
var str3 = str.slice(-7, -2); //如果是负数,-1为字符串的最后一个字符。提取从下标-7开始到下标-2但不包含下标-2的字符串。前一个数要小于后一个数,否则返回空字符串

console.log(str1);  // llo World
console.log(str2);  // llo W
console.log(str3);  // o Wor

6、substring(start, end): 提取字符串中介于两个指定下标之间的字符。

var str = "Hello World";
var str1 = str.substring(2)
var str2 = str.substring(2,2);
var str3 = str.substring(2,7);
console.log(str1);  // llo World
console.log(str2);  // 如果两个参数相等,返回长度为0的空串
console.log(str3);  // llo W

注意:substring()用法与slice()一样,但不接受负值的参数。

7、substr(start, length): 返回从指定下标开始指定长度的的子字符串

var str = "Hello World";
var str1 = str.substr(1)
var str2 = str.substr(1, 3);
var str3 = str.substr(-3, 2);
console.log(str1);   // ello World 
console.log(str2);  // ell
console.log(str3);  // rl

注意:如果没有指定length,返回从下标开始处结尾处的所有字符串。

8、split(): 把字符串分割成字符串数组。

var str = "AA BB CC DD";
var string1 = "1:2:3:4:5";
var str1 = str.split("");          // 如果把空字符串 ("")用作分割符,那么字符串的每个字符之间都会被分割
var str2 = str.split(" ");        // 以空格为分隔符
var str3 = str.split("", 4);     // 4指定返回数组的最大长度
var str4 = string1.split(":");
console.log(str1);      // ["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D"]
console.log(str2);     // ["AA" "BB" "CC" "DD"]
console.log(str3);     // ["A", "A", " ", "B"]
console.log(str4);     // ["1", "2", "3", "4", "5"]

9、match(regexp): 字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回数组。

var str="To be or not to be";
var reg=/to/ig;
var str1=str.match(reg);
console.log(str1); //["To", "to"]
console.log(str.match("Hello")); //null

10、search(value) 查找字符串或者正则表达式,返回字符串的位置。如果没有找到任何匹配的子串,则返回 -1。

var str = "To be or not to be";
var reg = /o/ig;
var str1 = str.search(reg);
var str2 = str.search('or');
console.log(str1);     // 1
console.log(str2);     // 6

11、includes(str, start) 判断字符串是否存在,start可选,开始位置 如果找到匹配的字符串则返回 true,否则返回 false。

12、startsWith(str, start) 返回布尔值,表示参数字符串是否在原字符串的头部 13、endsWith(str, start) 返回布尔值,表示参数字符串是否在原字符串的尾部。

let s = 'Hello world!';

s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

let s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

转换字符串

13、toLowerCase(): 把字符串转为小写,返回新的字符串。

var str = "Hello World";
var str1 = str.toLowerCase();
console.log(str);     //Hello World
console.log(str1);     //hello world

14、toUpperCase(): 把字符串转为大写,返回新的字符串。

var str = "hello world";
var str1 = str.toUpperCase();
console.log(str); //hello world
console.log(str1); //HELLO WORLD

15、concat(string1, string2, ..., stringX) 连接生成新的字符串,其本身不会受影响

去除空格

16、trim() 去除字符串两边的空白 trimStart() 消除字符串前面的空格 trimEnd() 消除字符串后面的空格

长度补全

如果某个字符串不够指定长度,会在头部或尾部补全。 17、padStart(leng, str) 用于头部补全 18、padEnd(leng, str) 用于尾部补全

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"

19、repeat() 方法返回一个新字符串,表示将原字符串重复n次。

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

hbase2.1.9 centos7 完全分布式 搭建随记

hbase2.1.9 centos7 完全分布式 搭建随记 这里是当初在三个ECS节点上搭建hadoop+zookeeper+hbase+solr的主要步骤,文章内容未经过润色,请参考的同学搭配其他博客一同使用,并记得根据实际情...

osc_4tfw1dxv
22分钟前
7
0
zookeeper3.5.5 centos7 完全分布式 搭建随记

zookeeper3.5.5 centos7 完全分布式 搭建随记 这里是当初在三个ECS节点上搭建hadoop+zookeeper+hbase+solr的主要步骤,文章内容未经过润色,请参考的同学搭配其他博客一同使用,并记得根据实...

osc_6jhxf9ab
23分钟前
19
0
steam夏日促销悄然开始,用Python爬取排行榜上的游戏打折信息

前言 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,...

osc_ur9mmbck
24分钟前
13
0
python 里 certifi 库的作用

python 里 certifi 库的作用 安装了certifi之后,和requests库一样也有一个cacert.pem,可以用编辑器打开cacert.pem,里面包含了很多可信任知名公司的证书/公钥 库的路径,我这里是python2.7...

osc_1x6ycmfm
26分钟前
11
0
干掉"ZooKeeper",阿里为什么不用ZK做服务发现?

  20大进阶架构专题每日送达   链接:yq.aliyun.com/articles/601745   2020年Java面试题库连载中   !   正文   站在未来的路口,回望历史的迷途,常常会很有意思,因为我们会不...

osc_q5m9dzk0
27分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部