JS String总结
String常用总结
1.字符
length属性:表示字符串包含多少16位码元
charAt():方法返回给定索引位置的字符
charCodeAt() :可以查看指定码元的字符编码
String.fromCharCode():这个方法可以接受任意多个数值,返回字符串
console.log(String.fromCharCode(0x61, 0x62, 0x63, 0x64, 0x65)); // "abcde"
codePointAt():正确解析既包含单码元字符又包含代理对字符的字符串(如笑脸)
let message = "abde";
console.log(message.codePointAt(2)); //128522
String.fromCodePoint():类似fromCharCode() 接收码点
2.规范化
某些Unicode字符可以有多种编码方式
normalize():接收一个标准 "NFD"、"NFC"、"NFKD"或"NFKC" 对字符进行统一标准化,以方便比较
console.log(a1 === a1.normalize("NFD")); // false
3.常用操作
- concat():用于将一个或多个字符串拼接成一个新字符串 ,可用“+”代替
- slice():接收两个参数 开始索引和结束索引(不包括结束) 可以取负值,如果开始大于结束位置则调换
- substring():接收两个参数 开始索引和结束索引(不包括结束) 负值会转换为0
- substr():接收两个参数 开始索引和返回字符串个数 第二个参数负值 转换为0
- indexOf() 和 lastIndexOf():从字符串中搜索传入的字符串,并返回位置(如果没找到,则返回-1),一个从开头,一个从尾部
第二个参数是起始查找位置 - startsWith()、endsWith()、includes() :返回是否包含的布尔值, 第二个参数是起始查找位置
- trim():返回原字符串去首尾空格副本 (trimLeft(),trimRight())
- repeat():接收一个整数 返回复制后的副本
- padStart()和padEnd():填充字符串 第一个参数为长度,第二个参数(可选默认为空格)填充字符
4.字符串迭代与解构
字符串原型暴露了[Symbol.iterator] () ,用来迭代每个字符
let message = "abc";
let stringIterator = message[Symbol.iterator]();
console.log(stringIterator.next());
//{value: "a", done: false}
console.log(stringIterator.next());
//{value: "b", done: false}
console.log(stringIterator.next());
//{value: "c", done: false}
console.log(stringIterator.next());
//{value: undefined, done: true}
可以通过for-of循环访问每个字符:
for (const c of "abcde") {
console.log(c);
}
// a
// b
// c
// d
// e
解构操作
let message = "abcde";
console.log([...message]); // ["a", "b", "c", "d", "e"]
注:可以把(...)解构操作符 理解为迭代结果用逗号分隔,所以
...message 可以看成 "a", "b", "c", "d", "e" ,再加方括号 即为结果。
5.大小写转换
toLowerCase()、toLocaleLowerCase()、 toUpperCase()和toLocaleUpperCase() 这两个用于特定地区语言
6.字符串匹配
1.match()
本质与RegExp的exec() 方法相同。方法接收一个参数:正则表达式对象,或表达式字符串
let text = "cat,bat";
let pattern = /(.)at/i;
let matches = text.match(pattern)
//let matches = pattern.exec(text); 等价
//["cat", "c", index: 0, input: "cat,bat", groups: undefined]
console.log(matches[0]); // "cat"
console.log(matches[1]); // "c"
console.log(matches.lastIndex); //没有使用全局匹配,永远为0
2.search()
查找模式,方法接收一个参数:正则表达式对象,或表达式字符串。返回模式第一个匹配的位置索引,如果没找到则返回-1。
let text = "cat, bat, sat, fat";
let pos = text.search(/at/);
console.log(pos); // 1
3.replace()
用于替换字符串,方法接收两个参数,第一个参数为RegExp对象或字符串、第二个参数为字符串或函数。
第一个参数为字符串则只会替换第一个字符串,如果全部替换,正则表达式必须带全局标记。
第二个参数是字符串时有几个特殊字符,可用来表示匹配到的值
$n:n为0-9,$1表示第一个捕获组的字符串let text = "bat, cat, fat, tat";
let pattern = /(.)at/g; let result = text.replace(pattern,"$1$1"); //$1表示分组1 也就是at前面的字符
console.log(result); //"bb, cc, ff, tt"
第二个参数是函数,函数会接收三个参数:匹配的整个字符串、匹配索引、整个字符串。(多个捕获组会传多次)。
函数应该返回一个字符串,表示替换内容。function htmlEscape(text) {
return text.replace(/[<>"&]/g,
function(match, pos, originalText) {
switch(match) {
case "<":
return "<";
case ">":
return ">";
case "&":
return "&";
case "\"":
return """;
}
});
}
console.log(htmlEscape("<p class=\"greeting\">Hello world!</p>"));
// "<p class="greeting">Hello world!</p>"
4.split()
用于将字符串分割为数组,第一个参数可以是RegExp对象或字符串,第二个可选参数用于指定数组最大大小。
let colorText = "red,blue,green,yellow";
let colors1 = colorText.split(",");
// ["red", "blue", "green", "yellow"]
let colors2 = colorText.split(",", 2);
// ["red", "blue"]
let colors3 = colorText.split(/[^,]+/);
// ["", ",", ",", ",", ""] 如果分隔符在开头和结尾出现,数组的前后就会出现空字符串元素
7.字符串比较
localeCompare() 按照字母表原字符串应该排在字符串参数前头,则返回负值,相等为0,排在后面则为正值。
let stringValue = "yellow";console.log(stringValue.localeCompare("brick")); // 1
此方法支持多国语言
JS String总结的更多相关文章
- Right in the Center (js string algorithm)
Right in the Center (js string algorithm) codewars https://www.codewars.com/kata/5f5da7a415fbdc0001a ...
- 说说 js String
首先说说js的字符串,说到字符串这个就和我们原来的C# 代码有区别的就是,js里面没有chart类型.就是说他里面的 “ ”和‘ ’是要表达一样的意思. 其实这个里面就有一个问题了特别实在拼接字符串的 ...
- js string to int
一.js中string转int有两种方式 Number() 和 parseInt() <script> var str='1250' ; alert( Number(str) ...
- js string和number
number Js只有一种数字类型(包括整型,浮点型) 极大或极小的可用科学计数法来表示.(7.7123e+1) 所有js数字均为64位 Js所有的数字都存储为浮点型 小数的最大位数是17位 0开头的 ...
- js String对象
字符串(String) 字符串(String)使用长度属性length来计算字符串的长度: 在字符串中查找字符串 字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置: 实例 ...
- js String对象中常用方法小结(字符串操作)
1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符 ...
- javascript js string.Format()收集
方案1http://www.cnblogs.com/loogn/archive/2011/06/20/2085165.html String.prototype.format = function(a ...
- js String方法集合
//https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String//返回对应索引的字符 ...
- js String Trim函数
<javascript> String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g,"& ...
- js string 转 int 注意的问题——parseInt
< script > var str = '1250';alert(Number(str)); //得到1250 alert(parseInt(str)); //得到1250 var st ...
随机推荐
- Codeforces 1015E1 Stars Drawing (Easy Edition)
题面: 传送门 题目描述: 要求用十字星星来画题目给出的"星"图.如果不能用十字星星来画"星"图,输出-1:如果能,则输出要在图的哪个位置画相应大小的十字星图. ...
- Java程序员都要懂得知识点:反射
摘要:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...
- 微信小程序实现搜索关键词高亮
目录 1,前言 2,思路 3,代码逻辑 1,前言 项目中碰到一个需求,搜索数据并且关键词要高亮显示,接到需求,马上开干.先上效果图.源码已经做成了小程序代码片段,放入了GitHub了,文章底部有源码链 ...
- java例题_29 二维数组问题,并输出对角线之和
1 /*29 [程序 29 求矩阵对角线之和] 2 题目:求一个 3*3 矩阵对角线元素之和 3 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. 4 */ 5 6 ...
- 201871030126-王会娟 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 https://home.cnblogs.com/u/wanghuijuan815 这个作业要求链接 https://www.cnblogs.com/nwnu-daizh ...
- OO_Unit3总结
OO_Unit3总结 一.JML情况 理论基础 JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言,为严格的程序设计提供了一套行之有效的方法.通过J ...
- Java刷题-list
一.打印两个有序链表的公共部分 补充一个关于节点的链表构造方法 Node next是设置指针域 import java.io.IOException;这个是报错信息 这是两个lO流 import ja ...
- Java(65-80)【方法、数组】
1.方法的三种调用:单独调用.打印调用.赋值调用 单独调用就是调用方法并不进行输出: 打印调用就是对方法进行输出 赋值调用就是将结果赋值给一个变量再进行输出 void是没有返回值的,因此只能进行赋值单 ...
- 磁盘lvm管理
1.磁盘接口: 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而SAS只在高端服务器 ...
- JavaScript遍历对象方法总结
前言 本篇内容将按照下图展开: 遍历Object Object最常见的遍历方法方法就是使用for...in...,但其有一定的局限性,比如只能遍历可枚举属性.虽然Object无法直接使用for循环和f ...