Z
ZHANK
基础入门

字符串操作

深入学习字符串方法、模板字面量、正则

字符串操作

JavaScript 字符串处理非常灵活,从模板字面量到丰富的内置方法。

学完本章你将: 掌握字符串创建、模板字面量、常用方法。


创建字符串

javascript
// 三种引号
let s1 = "双引号";
let s2 = '单引号';
let s3 = `模板字面量(ES6)`;

// 模板字面量支持插值和换行
let name = "Alice";
let greeting = `你好,${name}!
欢迎来到 JavaScript 世界。`;
console.log(greeting);
// 你好,Alice!
// 欢迎来到 JavaScript 世界。

常用方法

javascript
let str = "  Hello World!  ";

// 长度
console.log(str.length); // 16

// 大小写转换
console.log(str.toUpperCase());  // "  HELLO WORLD!  "
console.log(str.toLowerCase());  // "  hello world!  "

// 去除空白
console.log(str.trim());   // "Hello World!"
console.log(str.trimStart()); // "Hello World!  "
console.log(str.trimEnd());   // "  Hello World!"

// 查找
console.log(str.includes("World")); // true
console.log(str.indexOf("World"));  // 8
console.log(str.startsWith("  He")); // true
console.log(str.endsWith("!  "));    // true

提取与分割

javascript
let str = "JavaScript";

// 切片
console.log(str.slice(0, 4));   // "Java"
console.log(str.slice(4));      // "Script"
console.log(str.slice(-6));     // "Script"(从末尾数)

// 取字符
console.log(str.charAt(0));    // "J"
console.log(str[0]);           // "J"(推荐)

// 分割与拼接
let csv = "apple,banana,orange";
let arr = csv.split(",");
console.log(arr); // ["apple", "banana", "orange"]

console.log(arr.join(" | ")); // "apple | banana | orange"

替换与填充

javascript
let str = "Hello World World";

console.log(str.replace("World", "JS"));     // "Hello JS World"(只替换第一个)
console.log(str.replaceAll("World", "JS"));  // "Hello JS JS"(ES2021)

// 填充
console.log("7".padStart(3, "0"));  // "007"
console.log("abc".padEnd(6, "."));  // "abc..."

模板字面量进阶

javascript
// 表达式插值
let a = 10, b = 20;
console.log(`${a} + ${b} = ${a + b}`); // "10 + 20 = 30"

// 多行字符串
let html = `
<div class="card">
    <h2>标题</h2>
    <p>内容</p>
</div>`;

// 标签模板
function highlight(strings, ...values) {
    return strings.reduce((result, str, i) =>
        result + str + (values[i] ? `**${values[i]}**` : ""), "");
}
console.log(highlight`价格:${99}元`); // "价格:**99**元"