迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

如何使用 JavaScript 转义字符串中的引号

作者:迹忆客 最近更新:2023/02/23 浏览次数:

在 JavaScript 中转义字符串中的引号

要转义字符串中的单引号或双引号,需要在字符串内容中的每个单引号或双引号之前使用反斜杠 \ 字符,例如 'that's it'。

const escapeSingle = 'it\'s a string';
console.log(escapeSingle) // 👉️ it's a string

const escapeDouble = "fql\"jiyik"
console.log(escapeDouble)  // 👉️ fql"jiyik

当我们使用反斜杠字符转义单引号或双引号时,我们指示 JavaScript 我们希望将引号视为文字单引号或双引号字符,而不是字符串结尾字符。 如果在用单引号引起来的字符串中使用单引号,则会过早地终止该字符串。

但是,当我们使用反斜杠转义单引号时,情况就不是这样了。


转义字符串中的双引号

我们可以使用相同的方法来转义字符串中的双引号。

const escapeDouble = "He said: \"test 123\""
console.log(escapeDouble) // 👉️ He said: "test 123"

我们使用反斜杠 \ 字符来转义字符串中的每个双引号。

使用 String.replaceAll() 转义字符串中的引号

我们还可以使用 String.replaceAll() 方法转义字符串中的引号。

// ✅ 转义每一个单引号
const str = "it's a string";
console.log(str); // 👉️ it's a string

const result = str.replaceAll("'", "\\'");

console.log(result); // 👉️ it\'s a string

String.replaceAll() 方法返回一个新字符串,其中所有匹配的模式都被提供的替换项替换。

该方法采用以下参数:

  • pattern 要在字符串中查找的模式。 可以是字符串或正则表达式。
  • replacement 一个字符串,用于将匹配的子字符串替换为提供的模式。

代码示例对字符串中的每个单引号进行转义。

// ✅ 转义每一个单引号
const str = "it's a string";
console.log(str); // 👉️ it's a string

const result = str.replaceAll("'", "\\'");

console.log(result); // 👉️ it\'s a string

可以使用相同的方法来转义字符串中的双引号。

// ✅ 转义每一个双引号
const str = 'it"s a string';
console.log(str); // 👉️ it"s a string

const result = str.replaceAll('"', '\\"');

console.log(result); // 👉️ it\"s a string

String.replaceAll() 方法返回一个新字符串,其中替换了模式的匹配项。 该方法不会更改原始字符串。

字符串在 JavaScript 中是不可变的。

交替引号以避免使用反斜杠

可以通过更改字符串的外部引号来避免转义引号。

const withSingle = "it's a string";
console.log(withSingle) // 👉️ it's a string

const withDouble = 'He said: "test 123"'
console.log(withDouble) // 👉️ He said: "test 123"

我们交替使用双引号和单引号,因此我们不必转义它们。

使用反引号代替反斜杠

请注意 ,我们还可以在定义存储字符串的变量时使用反引号。 这允许我们在字符串中同时使用单引号和双引号而无需转义它们。

const withBoth = `it's a "test 123"`;
console.log(withBoth) // 👉️ it's a "test 123"

该字符串用反引号括起来,因此我们不必在其内容中转义单引号和双引号。

要将反斜杠 \ 字符添加到字符串,请将两个反斜杠并排添加。

第一个反斜杠转义第二个反斜杠,因此第二个反斜杠按字面意思。

const addBackslash = "He said: \\\"test 123\\\""
console.log(addBackslash) // 👉️ He said: \"test 123\"

我们有 3 个相邻的反斜杠。 第一个反斜杠转义第二个反斜杠,因此它由 JavaScript 按字面解释。 第三个反斜杠用于转义双引号。

这是一个更现实的例子,我们只在字符串中添加一个反斜杠。

const addBackslash = "BMW \\1996\\"
console.log(addBackslash) // 👉️ BMW \1996\

显示字符串中的转义字符

如果需要在字符串中显示转义字符,请使用 JSON.stringify() 方法。

const addBackslash = 'BMW \\1996\\';
console.log(addBackslash); // 👉️ BMW \1996\

const withEscapeChars = JSON.stringify(addBackslash);
console.log(withEscapeChars); // 👉️ "BMW \\1996\\"

JSON.stringify 方法将 JavaScript 值转换为 JSON 字符串。

将值转换为 JSON 字符串时,其输出包含转义字符。


避免在 HTML 代码中使用内联事件处理程序

如果在 HTML 代码中使用内联事件处理程序时出现错误,最好的解决方案是重写代码以使用 JavaScript 而不是使用内联事件处理程序。

这是一个例子。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="box">jiyik.com</div>

    <script type="module" src="index.js"></script>
  </body>
</html>

这是相关的 JavaScript 代码。

const box = document.getElementById('box');

function handleClick() {
  box.style.background = 'lime';
}

box.addEventListener('click', handleClick);

box.innerHTML = `
  <div id="box">
    <p title="example">jiyik.com</p>
    <p>Hello world</p>
  </div>
`;

我们可以使用 document.getElementById() 方法或 querySelector 方法选择 DOM 元素。

然后,我们可以向元素添加事件侦听器或更新其内部 HTML 标记。

请注意 ,我们在设置 innerHTML 属性时使用了反引号。

这使我们能够在构建 HTML 标记时同时使用单引号和双引号。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

JavaScript POST

发布时间:2024/03/23 浏览次数:96 分类:JavaScript

本教程讲解如何在不使用 JavaScript 表单的情况下发送 POST 数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便