Hướng dẫn javascript alert escape characters - ký tự thoát cảnh báo javascript

JavaScript có chức năng tích hợp như addslashes (hoặc addcslashes) tích hợp của PHP để thêm dấu gạch chéo ngược vào các ký tự cần thoát trong chuỗi không?

Nội phân Chính showShow

  • Giá trị trả về
  • Sự mô tả
  • Sử dụng lối thoát
  • Thông số kỹ thuật
  • Tính tương thích của trình duyệt web
  • Làm thế nào để bạn thoát các ký tự trong một chuỗi javascript?
  • Làm cách nào để thêm một ký tự thoát vào một chuỗi?
  • Làm thế nào để bạn viết Escape trong JavaScript?
  • Các hàm unescape () và Escape () là gì?

Ví dụ, điều này:

Đây là một chuỗi demo với 'các tài liệu đơn lẻ' và "quotes kép".

...sẽ trở thành:

Đây là một chuỗi demo với \ 'các tài liệu đơn \' và \ "đôi quotes \".

Hỏi ngày 20 tháng 4 năm 2009 lúc 23:50Apr 20, 2009 at 23:50

Steve Harrisonsteve HarrisonSteve Harrison

Huy hiệu vàng 115K1515 gold badges85 silver badges71 bronze badges

6

Bạn cũng có thể thử điều này cho các trích dẫn kép:

JSON.stringify(sDemoString).slice(1, -1);
JSON.stringify('my string with "quotes"').slice(1, -1);

KNU

Huy hiệu vàng 14,6K556 Huy hiệu bạc88 Huy hiệu đồng5 gold badges56 silver badges88 bronze badges

Đã trả lời ngày 3 tháng 4 năm 2014 lúc 12:30Apr 3, 2014 at 12:30

9

Một biến thể của chức năng được cung cấp bởi Paolo Bergantino hoạt động trực tiếp trên chuỗi:

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 

Bằng cách thêm mã ở trên trong thư viện của bạn, bạn sẽ có thể làm:

var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());

EDIT:

Các đề xuất sau đây trong các bình luận, bất cứ ai quan tâm đến xung đột giữa các thư viện JavaScript đều có thể thêm mã sau:

if(!String.prototype.addSlashes)
{
   String.prototype.addSlashes = function()... 
}
else
   alert("Warning: String.addSlashes has already been declared elsewhere.");

Sắc nét

6.4284 Huy hiệu vàng43 Huy hiệu bạc39 Huy hiệu Đồng4 gold badges43 silver badges39 bronze badges

Đã trả lời ngày 31 tháng 3 năm 2010 lúc 18:51Mar 31, 2010 at 18:51

Marco Demaiomarco DemaioMarco Demaio

32.7K33 Huy hiệu vàng126 Huy hiệu bạc157 Huy hiệu đồng33 gold badges126 silver badges157 bronze badges

4

Bạn cũng có thể sử dụng cái này

let str = "hello single ' double \" and slash \\ yippie";

let escapeStr = escape(str);
document.write("str : "+str);
document.write("
escapeStr : "+escapeStr); document.write("
unEscapeStr : "+unescape(escapeStr));

Đã trả lời ngày 30 tháng 12 năm 2020 lúc 13:23Dec 30, 2020 at 13:23

1

Dành: Tính năng này không còn được khuyến nghị. Mặc dù một số trình duyệt vẫn có thể hỗ trợ nó, nhưng nó có thể đã bị xóa khỏi các tiêu chuẩn web có liên quan, có thể đang trong quá trình bị loại bỏ hoặc chỉ có thể được giữ cho mục đích tương thích. Tránh sử dụng nó và cập nhật mã hiện có nếu có thể; Xem bảng tương thích ở cuối trang này để hướng dẫn quyết định của bạn. Xin lưu ý rằng tính năng này có thể ngừng hoạt động bất cứ lúc nào. This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

CẢNH BÁO: Mặc dù escape() không bị phản đối nghiêm ngặt (như trong "bị xóa khỏi các tiêu chuẩn web"), nhưng nó được định nghĩa trong Phụ lục B của tiêu chuẩn ECMA-262, có trạng thái giới thiệu: Although escape() is not strictly deprecated (as in "removed from the Web standards"), it is defined in Annex B of the ECMA-262 standard, whose introduction states:

Tất cả các tính năng và hành vi ngôn ngữ được chỉ định trong phụ lục này có một hoặc nhiều đặc điểm không mong muốn và trong trường hợp không sử dụng di sản sẽ bị xóa khỏi đặc điểm kỹ thuật này. Các lập trình viên không nên sử dụng hoặc cho rằng sự tồn tại của các tính năng và hành vi này khi viết mã Ecmascript mới. …

Hàm escape() tính toán một chuỗi mới trong đó một số ký tự đã được thay thế bằng chuỗi thoát thập lục phân.escape() function computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.

LƯU Ý: Hàm này được sử dụng chủ yếu cho các truy vấn URL (phần của URL sau ____ 10), không thể thoát khỏi các chuỗi chuỗi thông thường, sử dụng định dạng

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
1. (
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
2 là hai chữ số thập lục phân và dạng
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
3 được sử dụng cho các ký tự unicode mặt phẳng cao hơn.)
This function was used mostly for URL queries (the part of a URL following
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
0)—not for escaping ordinary String literals, which use the format
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
1. (
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
2 are two hexadecimal digits, and the form
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
3 is used for higher-plane Unicode characters.)

Các ký tự đã thoát trong các chữ cái có thể được mở rộng bằng cách thay thế

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
4 bằng
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
5, sau đó sử dụng hàm
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
6.

Cú pháp

Thông số

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
7

Một chuỗi được mã hóa.

Giá trị trả về

Một chuỗi mới trong đó một số ký tự đã được thoát ra.

Sự mô tả

Hàm

String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
8 là một thuộc tính của đối tượng toàn cầu. Các ký tự đặc biệt được mã hóa ngoại trừ:
String.prototype.addSlashes = function() 
{ 
   //no need to do (str+'') anymore because 'this' can only be a string
   return this.replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
} 
9

Hình thức thập lục phân cho các ký tự, có giá trị đơn vị mã là

var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());
0 hoặc ít hơn, là một chuỗi thoát hai chữ số:
var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());
1. Đối với các ký tự có đơn vị mã lớn hơn, định dạng bốn chữ số
var test = "hello single ' double \" and slash \\ yippie";
alert(test.addSlashes());
2 được sử dụng.

Ví dụ

Sử dụng lối thoát

escape('abc123');     // "abc123"
escape('äöü');        // "%E4%F6%FC"
escape('ć');          // "%u0107"

// special characters
escape('@*_+-./');    // "@*_+-./"

Thông số kỹ thuật

Tính tương thích của trình duyệt web
Làm thế nào để bạn thoát các ký tự trong một chuỗi javascript?
# sec-escape-string

Tính tương thích của trình duyệt web

Làm thế nào để bạn thoát các ký tự trong một chuỗi javascript?

Làm cách nào để thêm một ký tự thoát vào một chuỗi?

Làm thế nào để bạn thoát các ký tự trong một chuỗi javascript?

Làm cách nào để thêm một ký tự thoát vào một chuỗi? We can use the backslash ( \ ) escape character to prevent JavaScript from interpreting a quote as the end of the string. The syntax of \' will always be a single quote, and the syntax of \" will always be a double quote, without any fear of breaking the string.

Làm cách nào để thêm một ký tự thoát vào một chuỗi?

Làm thế nào để bạn viết Escape trong JavaScript?a backslash \ followed by the character you want to insert.

Làm thế nào để bạn viết Escape trong JavaScript?

Các hàm unescape () và Escape () là gì?backslash ( \ ) is an escape character. As an example, let's say I want to display the following text: They call it an "escape" character.

Các hàm unescape () và Escape () là gì?

Ví dụ, điều này:. The escape() function in JavaScript is used for encoding a string. Using ASCII character support, it makes a string portable so that it can be transmitted across any network to any computer.