深切明白ES6笔记(二)字符串和正则表达

重要知识点:新增的字符串处置惩罚要领、模板字面量以及正则表达式上的修改

《深切明白ES6笔记(二)字符串和正则表达》

《深切明白ES6》笔记 目次

字符串

字符串(String)是JavaScript6大原始数据范例。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。

字符串范例在前端开辟者,是运用最频仍的范例之一,网站上可见的种种案牍,险些都是字符串范例的数据。我们常常须要运用的操纵无非是这么几点:读取字符串、转换字符串、清空字符串、拼接字符串、截取字符串。

在ES5中,字符串范例已有了异常丰富的运用才能,那末,在ES6中,ECMA的专家们对字符串做了什么更新呢?

当Unicode引入扩大字符集以后,16位的字符已不足以满足字符串的生长,所以才在ES6中更新了Unicode的支撑。

我们看看ES6字符串新增的要领

UTF-16码位:ES6强迫运用UTF-16字符串编码。关于UTF-16的诠释请自行百度相识。

codePointAt():该要领支撑UTF-16,吸收编码单位的位置而非字符串位置作为参数,返回与字符串中给定位置对应的码位,即一个整数值。

String.fromCodePoiont():作用与codePointAt相反,检索字符串中某个字符的码位,也能够依据指定的码位天生一个字符。

normalize():供应Unicode的规范情势,吸收一个可选的字符串参数,指明运用某种Unicode规范情势。

正则表达式

正则表达式u修饰符:当给正则表达式增加u字符时,它就从编码单位操纵形式切换为字符形式。

正则表达的y标志:y 标志影响正则表达式搜刮时的粘连( sticky ) 属性,它示意从正则表达式的 lastIndex 属性值的位置最先检索字符串中的婚配字符。假如在该位置没有婚配胜利,那末正则表达式将住手检索;

复制正则表达式:运用RegExp组织器时许可运用第二个参数,而且让它掩盖第一个参数中的标志;
flag属性:ES6 新增了 flags 属性用于合营 source 属性,让标志的猎取变得更随意马虎。

其他新增的要领

字符串中的子串辨认:

之前我们常常运用indexOf()来检测字符串中是不是包括别的一段字符串。请输入代码

let t = 'abcdefg'
if(t.indexOf('cde') > -1) {
  console.log(2)
}
//输出2,由于t字符串中包括cde字符串。

在ES6中,新增了3个新要领。每一个要领都吸收2个参数,须要检测的子字符串,以及最先婚配的索引位置。

includes(str, index):假如在字符串中检测到指定文本,返回true,不然false;假如不传第二个参数,默以为0。

let t = 'abcdefg'
if(t.includes('cde')) {
  console.log(2)
}
//true

startsWith(str, index):假如在字符串肇端部份检测到指定文本,返回true,不然返回false。假如不传第二个参数,默以为0。

let t = 'abcdefg'
if(t.startsWith('ab')) {
  console.log(2)
}
//true

endsWith(str, index):假如在字符串的完毕部份检测到指定文本,返回true,不然返回false。默以为字符串末端最先查找。

假如你只是须要婚配字符串中是不是包括某子字符串,那末引荐运用新增的要领,假如须要找到婚配字符串的位置,运用indexOf()。

repeat(number)

吸收一个Number范例的数据,返回一个反复N次的新字符串。纵然这个字符串是空字符,也你能返回N个空字符的新字符串。

console.log('ba'.repeat(3)) //bababa

模板字面量

基本语法

之前,我们用单引号或双引号示意字符串。

let a = '123' //单引号
let b = "123" //双引号

如今,运用模板字面量反撇号“。在现实开辟中,这是常常都要用到的要领。

let c = `123` //反撇号

在字符串中运用反撇号,只须要加上转义符。

let d = `12\`3` //字符串内插进去反撇号的体式格局。

多行字符串

模板字面量为处理多行字符串的一系列问题供应了一个异常好的机制。

假如不运用模板字面量,完成多行字符串,你可能会运用换行符。

let a = '123\n456'
console.log(a) 
// 123
// 456

运用模板字面量,就能够异常简朴的完成需求。

let a = `123
456
`
console.log(a)
// 123
// 456

在模板字面量插进去变量的要领(字符串占位符)

我们不再须要运用 +(加号)来向字符串插进去变量,而是运用${params}直接插进去你须要增加到字符串的位置。

let t = 'haha'
let a = `123${t}456`
console.log(a) //123haha456

既然替代位是 JS 表达式,那末可替代的就不仅仅是简朴的变量名。你能够随意马虎嵌入盘算、函
数挪用,等等。比方:

let count = 10,
price = 0.25,
message = `${count} items cost $${(count * price).toFixed(2)}.`;
console.log(message); // "10 items cost $2.50."
    原文作者:sevencui
    原文地址: https://segmentfault.com/a/1190000016022124
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞