迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 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 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便