美文网首页
ES6(二)字符串与正则表达式 2

ES6(二)字符串与正则表达式 2

作者: 蒋小花_4b6c | 来源:发表于2020-04-26 19:38 被阅读0次

1.flags 获取正则表达式的标志

2.模板字面量( template literal

3.多行字符串 ``  

4.制造替换位 ${}

5.模板字面量中的原始值

6.

flags 获取正则表达式的标志

提取正则表达式的组成部分.

 es5:

将正则表达式转化成字符串后提取

function getFlags(re) {

    const txt = re.toString();

    return txt.substring(txt.lastIndexOf('/') + 1, txt.length);

    // 返回正则字符串,最后一个/后面的内容

}

const re = /ab/g;

console.log(getFlags(re)); // 输出: g

es6

直接提取正则表达式的组成部分,更方便

var re = /ab/g;

console.log(re.source); // ab

console.log(re.flags); // g

Tips:source、glags都是只读属性

模板字面量( template literal )

反引号( ` )来包裹普通字符串

let message = `Hello world!`;

console.log(message); // Hello world!

console.log(typeof message);  // string

console.log(message.length); // 12

let messageInfo = `${message} Good Day!`

console.log(messageInfo); // Hello world! Good Day!

若想在字符串中包含反引号,只需使用反斜杠( \ )转义

let message = `\`Hello\` world!`;

console.log(message); // "`Hello` world!"

console.log(typeof message); // "string"

console.log(message.length); // 14

多行(换行)字符串

es6之前

var message = "Multiline \n\ string";

console.log(message);   

// Multiline

//  string

es6 使用模板字符串(模板字面量)

const txt = `Hello

world!`;

console.log(txt);

// Hello

// world!

Tips: 

反引号之内的所有空白符都是字符串的一部分,因此需要留意缩进.

let html = `

<div>

    <h1>Title</h1>

</div>`.trim();

Tips:

trim() 方法,用于删除字符串的头尾空格,不会改变原始字符串.

制造替换位

起始: ${ 

结束: }

中间:插入变量 等需要嵌入的计算、函 数调用等内容.

let message = `Hello world!`;

let messageInfo = `${message} Good Day!`

console.log(messageInfo );

let count = 10,

    price = 0.25,

    message = `${count} items cost $${(count * price).toFixed(2)}.`;

console.log(message);  //  10 items cost $2.50.

模板字面量中的原始值

String.raw()

let message1 = `Multiline\nstring`,

message2 = String.raw`Multiline\nstring`;

console.log(message1); // "Multiline

                                        //  string"

console.log(message2); // "Multiline\\nstring"

相关文章

网友评论

      本文标题:ES6(二)字符串与正则表达式 2

      本文链接:https://www.haomeiwen.com/subject/jgofwhtx.html