Hướng dẫn javascript escape double quotes in string - javascript thoát dấu ngoặc kép trong chuỗi

Làm thế nào để bạn thoát khỏi trích dẫn kép nếu chuỗi JSON là như sau?

var str = "[{Company: "XYZ",Description: ""TEST""}]"

Tôi muốn thoát khỏi trích dẫn đôi thứ cấp trong bài kiểm tra giá trị.

Tôi đã thử như sau, nhưng nó không hoạt động.

var escapeStr = str.replace(/""/g,'\"');

Tôi còn thiếu gì?

Hướng dẫn javascript escape double quotes in string - javascript thoát dấu ngoặc kép trong chuỗi

Đã hỏi ngày 3 tháng 7 năm 2014 lúc 17:09Jul 3, 2014 at 17:09

3

Nó nên là:

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';

Đầu tiên, tôi đã thay đổi các trích dẫn bên ngoài thành các trích dẫn đơn, vì vậy chúng sẽ không xung đột với các trích dẫn bên trong. Sau đó, tôi đặt dấu gạch chéo ngược trước các trích dẫn trong cùng vào khoảng

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
1, để thoát khỏi chúng. Và tôi đã thoát khỏi dấu gạch chéo ngược để nó được đối xử theo nghĩa đen.

Bạn có thể nhận được kết quả tương tự khi sử dụng hàm JSON:

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});

Đã trả lời ngày 3 tháng 7 năm 2014 lúc 17:16Jul 3, 2014 at 17:16

BarmarbarmarBarmar

698K53 Huy hiệu vàng469 Huy hiệu bạc578 Huy hiệu Đồng53 gold badges469 silver badges578 bronze badges

3

Ở đây, trích dẫn bên trong được thoát ra và toàn bộ chuỗi được thực hiện trong một trích dẫn đơn.

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';

Hướng dẫn javascript escape double quotes in string - javascript thoát dấu ngoặc kép trong chuỗi

Đã trả lời ngày 3 tháng 7 năm 2014 lúc 17:13Jul 3, 2014 at 17:13

Hướng dẫn javascript escape double quotes in string - javascript thoát dấu ngoặc kép trong chuỗi

ByjeevanbyjeevanbyJeevan

3.5883 huy hiệu vàng35 huy hiệu bạc58 Huy hiệu đồng3 gold badges35 silver badges58 bronze badges

1

Có nhiều cách khác nhau để thoát khỏi trích dẫn trong một chuỗi. Bài viết này sẽ hiển thị mỗi người.

Thoát khỏi chuỗi chữ

Nếu bạn chỉ muốn thoát khỏi chuỗi chữ, đây là những cách để làm điều đó. Có ít nhất ba cách để tạo một chuỗi theo nghĩa đen trong JavaScript - sử dụng các trích dẫn đơn, trích dẫn kép hoặc backtick (

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
2). Vì vậy, nếu bạn đặt chuỗi chuỗi của mình trong các trích dẫn đơn, không cần phải thoát khỏi dấu ngoặc kép và Vis Versa.
There are at least three ways to create a string literal in Javascript - using single quotes, double quotes, or the backtick (
var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
2).
So, if you enclose your string in single quotes, no need to escape double quotes and vis versa.

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."

Bạn có thể thoát khỏi trích dẫn kép (hoặc bất kỳ ký tự đặc biệt nào) bằng cách sử dụng dấu gạch chéo (\)

const slashEscape="It was the last step.\"Stop!\". She shouted."

Bên trong một mẫu theo nghĩa đen, bạn không cần phải thoát khỏi các quote đơn hoặc kép.

const templateLiteral=`"I'm OK with this Agreement" 
Said he.
"Me too!".
I said.`

Thử mã này:

Xem các trích dẫn thoát JavaScript Pen trong nghĩa đen

Hàm để thoát một chuỗi

Giả sử bạn đã nhận được một chuỗi có thể chứa các trích dẫn và các ký tự đặc biệt khác. Bạn có thể sử dụng JSON.Stringify () để thoát khỏi các ký tự đặc biệt như vậy:

function escapeString(str)
{
  return JSON.stringify(str)
}

Đây là một ví dụ:

Xem chức năng chuỗi thoát JavaScript PEN

Giới thiệu

Một chuỗi là một chuỗi của một hoặc nhiều ký tự có thể bao gồm các chữ cái, số hoặc ký hiệu. Các chuỗi trong JavaScript là các loại dữ liệu nguyên thủy và bất biến, điều đó có nghĩa là chúng không thay đổi.string is a sequence of one or more characters that may consist of letters, numbers, or symbols. Strings in JavaScript are primitive data types and immutable, which means they are unchanging.

Vì các chuỗi là cách chúng tôi hiển thị và làm việc với văn bản, và văn bản là cách chính của chúng tôi để giao tiếp và hiểu biết thông qua máy tính, chuỗi là một trong những khái niệm cơ bản nhất về lập trình để làm quen.

Trong bài viết này, chúng tôi sẽ học cách tạo và xem đầu ra của các chuỗi, cách kết hợp các chuỗi, cách lưu trữ các chuỗi theo các biến và các quy tắc sử dụng trích dẫn, dấu nháy đơn và newlines trong các chuỗi trong JavaScript.

Tạo và xem đầu ra của chuỗi

Trong JavaScript, có ba cách để viết một chuỗi - chúng có thể được viết bên trong các trích dẫn đơn (

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
3), trích dẫn kép (
var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
4) hoặc backticks (
var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
5). Loại báo giá được sử dụng phải khớp ở cả hai bên, tuy nhiên có thể cả ba kiểu có thể được sử dụng trong cùng một kịch bản.

Chuỗi sử dụng dấu ngoặc kép và trích dẫn đơn có hiệu quả giống nhau. Vì không có quy ước hoặc ưu tiên chính thức cho các chuỗi được trình duyệt đơn hoặc kép, tất cả những gì có vấn đề đang giữ sự nhất quán trong các tệp chương trình dự án.

'This string uses single quotes.';
var escapeStr = str.replace(/""/g,'\"');
0

Cách thứ ba và mới nhất để tạo một chuỗi được gọi là một mẫu theo nghĩa đen. Các mẫu mẫu sử dụng backtick (còn được gọi là giọng nghiêm trọng) và hoạt động giống như các chuỗi thông thường với một vài phần thưởng bổ sung, mà chúng tôi sẽ đề cập trong bài viết này.template literal. Template literals use the backtick (also known as a grave accent) and work the same way as regular strings with a few additional bonuses, which we will cover in this article.

var escapeStr = str.replace(/""/g,'\"');
1

Cách dễ nhất để xem đầu ra của chuỗi là in nó vào bảng điều khiển, với

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
6:

var escapeStr = str.replace(/""/g,'\"');
2
var escapeStr = str.replace(/""/g,'\"');
3

Một cách đơn giản khác để xuất ra giá trị là gửi một cửa sổ bật lên cảnh báo đến trình duyệt với

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
7:

var escapeStr = str.replace(/""/g,'\"');
4

Chạy dòng trên sẽ tạo ra đầu ra sau trong giao diện người dùng của trình duyệt:

Hướng dẫn javascript escape double quotes in string - javascript thoát dấu ngoặc kép trong chuỗi

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
7 là một phương pháp thử nghiệm và xem đầu ra ít phổ biến hơn, vì nó có thể nhanh chóng trở nên tẻ nhạt để đóng các cảnh báo.

Lưu trữ một chuỗi trong một biến

Các biến trong JavaScript được đặt tên các container lưu trữ một giá trị, sử dụng các từ khóa

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
9,
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
0 hoặc
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
1. Chúng ta có thể gán giá trị của một chuỗi cho một biến được đặt tên.

var escapeStr = str.replace(/""/g,'\"');
5

Bây giờ biến

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
2 chứa chuỗi của chúng tôi, chúng tôi có thể tham chiếu nó và in nó vào bảng điều khiển.

var escapeStr = str.replace(/""/g,'\"');
6

Điều này sẽ xuất ra giá trị chuỗi.

var escapeStr = str.replace(/""/g,'\"');
7

Bằng cách sử dụng các biến để đứng cho các chuỗi, chúng tôi không phải gõ lại một chuỗi mỗi lần chúng tôi muốn sử dụng nó, làm cho nó đơn giản hơn để chúng tôi làm việc và thao tác các chuỗi trong các chương trình của chúng tôi.

Kết hợp chuỗi

Concatenation có nghĩa là nối hai hoặc nhiều chuỗi với nhau để tạo ra một chuỗi mới. Để kết nối, chúng tôi sử dụng toán tử nối, được biểu thị bằng biểu tượng

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3. Biểu tượng
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 cũng là toán tử bổ sung khi được sử dụng với các hoạt động số học.
means joining two or more strings together to create a new string. In order to concatenate, we use the concatenation operator, represented by a
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 symbol. The
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 symbol is also the addition operator when used with arithmetic operations.

Hãy để tạo ra một ví dụ đơn giản về sự kết hợp, giữa

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
5 và
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
6.

var escapeStr = str.replace(/""/g,'\"');
8
var escapeStr = str.replace(/""/g,'\"');
9

Concatenation tham gia các chuỗi từ đầu đến cuối, kết hợp chúng và xuất ra một giá trị chuỗi hoàn toàn mới. Nếu chúng ta muốn có một khoảng trống giữa các từ

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
7 và
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
8, chúng ta sẽ cần đưa một ký tự khoảng trắng vào một trong các chuỗi:

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
0
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
1

Chúng tôi tham gia các chuỗi và các biến chứa các giá trị chuỗi với cách ghép.

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
2
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
3

Khi chúng tôi kết hợp hai hoặc nhiều chuỗi thông qua việc kết hợp, chúng tôi đang tạo ra một chuỗi mới mà chúng tôi có thể sử dụng trong suốt chương trình của mình.

Biến trong chuỗi có nghĩa đen mẫu

Một tính năng đặc biệt của tính năng theo nghĩa đen là khả năng bao gồm các biểu thức và biến trong một chuỗi. Thay vì phải sử dụng kết nối, chúng ta có thể sử dụng cú pháp

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
9 để chèn một biến.

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
4
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
3

Như chúng ta có thể thấy, bao gồm các biểu thức trong nghĩa đen là một cách khác để hoàn thành kết quả tương tự. Trong trường hợp này, sử dụng các chữ cái có thể dễ dàng hơn để viết và thuận tiện hơn.

Chuỗi chữ và giá trị chuỗi

Bạn có thể nhận thấy rằng các chuỗi chúng tôi viết trong mã nguồn được đặt trong các trích dẫn hoặc backticks, nhưng đầu ra in thực tế không bao gồm bất kỳ trích dẫn nào.

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
6
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
7

Có một sự khác biệt khi đề cập đến từng điều này. Một chuỗi chữ là chuỗi như được viết trong mã nguồn, bao gồm các trích dẫn. Giá trị chuỗi là những gì chúng ta thấy trong đầu ra và không bao gồm các trích dẫn.string literal is the string as it is written in the source code, including quotations. A string value is what we see in the output, and does not include quotations.

Trong ví dụ trên,

const slashEscape="It was the last step.\"Stop!\". She shouted."

0 là một chuỗi theo nghĩa đen và
const slashEscape="It was the last step.\"Stop!\". She shouted."

1 là một giá trị chuỗi.

Thoát khỏi trích dẫn và dấu nháy đơn trong chuỗi

Do thực tế là các dấu ngoặc kép được sử dụng để biểu thị các chuỗi, phải xem xét đặc biệt khi sử dụng dấu nháy đơn và trích dẫn trong chuỗi. Ví dụ, cố gắng sử dụng dấu nháy đơn ở giữa một chuỗi được trích xuất đơn, sẽ kết thúc chuỗi và JavaScript sẽ cố gắng phân tích phần còn lại của chuỗi dự định là mã.

Chúng ta có thể thấy điều này bằng cách cố gắng sử dụng dấu nháy đơn trong cơn co thắt

const slashEscape="It was the last step.\"Stop!\". She shouted."

2 dưới đây:

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
8
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
9

Điều tương tự cũng sẽ áp dụng cho việc cố gắng sử dụng báo giá trong một chuỗi được trích xuất kép.

Để tránh lỗi bị ném vào những tình huống này, chúng tôi có một vài tùy chọn mà chúng tôi có thể sử dụng:

  • Cú pháp chuỗi đối diện
  • Ký tự thoát
  • Mẫu chữ

Chúng tôi sẽ khám phá các tùy chọn dưới đây.

Sử dụng cú pháp chuỗi thay thế

Một cách dễ dàng để đi xung quanh các trường hợp bị cô lập của các chuỗi có khả năng bị hỏng là sử dụng cú pháp chuỗi ngược lại của một chuỗi mà bạn hiện đang sử dụng.

Ví dụ, dấu nháy đơn trong các chuỗi được xây dựng với

const slashEscape="It was the last step.\"Stop!\". She shouted."

3.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
0

Dấu ngoặc kép trong các chuỗi được xây dựng với

const slashEscape="It was the last step.\"Stop!\". She shouted."

4.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
1

Theo cách chúng tôi kết hợp các trích dẫn đơn và đôi, chúng tôi có thể kiểm soát việc hiển thị các dấu ngoặc kép và dấu nháy đơn trong chuỗi của chúng tôi. Tuy nhiên, khi chúng tôi đang làm việc để sử dụng cú pháp nhất quán trong các tệp lập trình dự án, điều này có thể khó duy trì trong suốt cơ sở mã.

Sử dụng ký tự thoát (const slashEscape="It was the last step.\"Stop!\". She shouted." 5)

Chúng ta có thể sử dụng ký tự thoát khỏi dấu gạch chéo ngược (

const slashEscape="It was the last step.\"Stop!\". She shouted."

5) để ngăn JavaScript diễn giải một trích dẫn là phần cuối của chuỗi.

Cú pháp của

const slashEscape="It was the last step.\"Stop!\". She shouted."

7 sẽ luôn là một trích dẫn duy nhất và cú pháp của
const slashEscape="It was the last step.\"Stop!\". She shouted."

8 sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.

Sử dụng phương pháp này, chúng ta có thể sử dụng các dấu nháy đơn trong các chuỗi được xây dựng với

const slashEscape="It was the last step.\"Stop!\". She shouted."

3.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
2

Chúng tôi cũng có thể sử dụng các dấu ngoặc kép trong các chuỗi được xây dựng với

const slashEscape="It was the last step.\"Stop!\". She shouted."

3.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
3

Phương pháp này trông có vẻ lộn xộn hơn một chút, nhưng bạn có thể cần sử dụng cả dấu nháy đơn và dấu ngoặc kép trong cùng một chuỗi, điều này sẽ khiến việc thoát ra cần thiết.

Sử dụng mẫu chữ

Các chữ cái mẫu được xác định với các backticks, và do đó cả trích dẫn và dấu nháy đơn đều có thể được sử dụng một cách an toàn mà không cần bất kỳ loại nào thoát hoặc xem xét thêm.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
4

Ngoài việc ngăn chặn sự cần thiết của việc thoát khỏi ký tự và cho phép các biểu thức nhúng, các mẫu văn bản cũng cung cấp hỗ trợ đa dòng, mà chúng tôi sẽ thảo luận trong phần tiếp theo.

Với cú pháp chuỗi xen kẽ, sử dụng các ký tự thoát và sử dụng nghĩa đen mẫu, có một số cách để tạo một chuỗi một cách an toàn.

Chuỗi dài và dòng mới

Có những lúc bạn có thể muốn chèn một ký tự mới hoặc trả về vận chuyển trong chuỗi của bạn. Các ký tự thoát

const templateLiteral=`"I'm OK with this Agreement" 
Said he.
"Me too!".
I said.`
1 hoặc
const templateLiteral=`"I'm OK with this Agreement" 
Said he.
"Me too!".
I said.`
2 có thể được sử dụng để chèn một dòng mới vào đầu ra của mã.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
5
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
6

Điều này hoạt động về mặt kỹ thuật để có được đầu ra của chúng tôi trên nhiều dòng. Tuy nhiên, viết một chuỗi rất dài trên một dòng sẽ nhanh chóng trở nên rất khó đọc và làm việc. Chúng ta có thể sử dụng toán tử nối để hiển thị chuỗi trên nhiều dòng.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
7

Thay vì kết hợp nhiều chuỗi, chúng ta có thể sử dụng ký tự thoát

const slashEscape="It was the last step.\"Stop!\". She shouted."

5 để thoát khỏi dòng mới.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
8

Lưu ý: Phương pháp này không được ưa thích, vì nó có thể gây ra các vấn đề với một số trình duyệt và máy thu nhỏ.: This method is not preferred, as it may cause issues with some browsers and minifiers.

Để làm cho mã dễ đọc hơn, thay vào đó chúng ta có thể sử dụng các chuỗi theo nghĩa đen. Chúng loại bỏ sự cần thiết phải nối hoặc thoát ra trên các chuỗi dài chứa các dòng mới. Chuỗi cũng như Newlines sẽ được bảo tồn.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
9
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
6

Điều quan trọng là phải nhận thức được tất cả các cách tạo ra các dòng và chuỗi trải rộng trên nhiều dòng, vì các cơ sở mã khác nhau có thể sử dụng các tiêu chuẩn khác nhau.

Sự kết luận

Trong bài viết này, chúng tôi đã xem qua những điều cơ bản khi làm việc với các chuỗi trong JavaScript, từ việc tạo và hiển thị các chữ viết bằng cách sử dụng các trích dẫn đơn và đôi, tạo ra các mẫu chữ, nối, thoát và gán các giá trị chuỗi cho các biến.

Làm thế nào để bạn thoát khỏi một báo giá kép trong JavaScript?

Sử dụng ký tự Escape (\), chúng ta có thể sử dụng ký tự thoát hiểm (\) để ngăn JavaScript diễn giải một trích dẫn là phần cuối của chuỗi. Cú pháp của \ 'sẽ luôn là một trích dẫn duy nhất và cú pháp của \ "sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.\" will always be a double quote, without any fear of breaking the string.

Làm thế nào để bạn thoát khỏi các trích dẫn đôi?

Bạn cần thoát khỏi trích dẫn đơn khi chữ được đặt trong mã đơn bằng cách sử dụng dấu gạch chéo ngược (\) hoặc cần thoát khỏi trích dẫn kép khi chữ được đặt trong mã kép bằng cách sử dụng dấu gạch chéo ngược (\).... JavaScript ..

Làm thế nào để bạn thoát khỏi một nhân vật đặc biệt trong JavaScript?

Để sử dụng một ký tự đặc biệt như một nhân vật thông thường, hãy dành cho nó bằng một dấu gạch chéo ngược: \..Đó cũng được gọi là người trốn thoát một nhân vật.prepend it with a backslash: \. . That's also called “escaping a character”.

Làm thế nào để bạn thoát khỏi trích dẫn?

Bạn có thể đặt một ký tự dấu gạch chéo ngược theo sau là một trích dẫn (\ "hoặc \ ')., nhưng không được in.put a backslash character followed by a quote ( \" or \' ). This is called an escape sequence and Python will remove the backslash, and put just the quote in the string. Here is an example. The backslashes protect the quotes, but are not printed.