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"
网友评论