JavaScript thay thế dấu gạch chéo ngược bằng dấu gạch chéo ngược kép

Khi nào bạn cần sử dụng dấu gạch chéo ngược kép để thoát khỏi ký tự đặc biệt trong biểu thức chính quy bằng IBM® Rational® Robot?

Câu trả lời

Khi một chuỗi được trích dẫn kép, nó sẽ được trình biên dịch xử lý và lặp lại trong thời gian chạy. Vì dấu gạch chéo ngược [\] bị xóa bất cứ khi nào chuỗi được xử lý, nên chuỗi trích dẫn kép cần có dấu gạch chéo ngược kép để có một dấu gạch chéo ngược còn lại trong chuỗi khi chạy để thoát khỏi "ký tự đặc biệt".

Ví dụ.
Chúng tôi muốn trích xuất ICrow0 bằng cách sử dụng từ phản hồi có mẫu như bên dưới.



       c:asdlkjklsdfjkl
    
    7
Biểu thức chính quy được sử dụng trong câu lệnh đối sánh sẽ là

    "NAME=SEARCH_RESULT1 HREF=\"javascript. submitAction_win1\\[tài liệu. main1,'#[[A-Za-z0-9]*]$0'\\]\" TABINDEX=28", sTemp3,&sRow];

trong đó dấu ngoặc phải và ngoặc trái là các ký tự đặc biệt cần thoát.

Tuyên bố từ chối trách nhiệm

Tất cả mã nguồn và/hoặc các tệp nhị phân đính kèm với tài liệu này được gọi ở đây là "Chương trình". IBM không cung cấp dịch vụ chương trình dưới bất kỳ hình thức nào cho Chương trình. IBM đang cung cấp Chương trình trên cơ sở "NGUYÊN TRẠNG" mà không có bất kỳ hình thức bảo hành nào. IBM SẼ KHÔNG CHỊU TRÁCH NHIỆM PHÁP LÝ VỀ BẤT KỲ THIỆT HẠI THỰC TẾ, TRỰC TIẾP, ĐẶC BIỆT, NGẪU NHIÊN HOẶC GIÁN TIẾP HOẶC BẤT KỲ THIỆT HẠI NÀO VỀ KINH TẾ [BAO GỒM LỢI NHUẬN HOẶC TIẾT KIỆM BỊ MẤT], NGAY CẢ KHI IBM HOẶC ĐẠI LÝ CỦA IBM ĐÃ ĐƯỢC TƯ VẤN VỀ KHẢ NĂNG THIỆT HẠI NHƯ VẬY

.

[{"Sản phẩm". {"mã số". "SSSHDX","nhãn". "Rational Robot"}"Đơn vị kinh doanh". {"mã số". "BU053","nhãn". "Nền tảng đám mây và dữ liệu"},"Thành phần". "Phát lại","Nền tảng". [{"mã số". "PF033","nhãn". "Windows"}],"Phiên bản". "2003. 06. 00;2003. 06. 10;2003. 06. 12;2003. 06. 13;2003. 06. 14;2003. 06. 15;2003. 06. 16;7. 0;7. 0. 0. 1;7. 0. 0. 2;7. 0. 0. 3;7. 0. 1;7. 0. 1. 1;7. 0. 1. 2;7. 0. 0. 4;7. 0. 1. 3;7. 0. 2","Phiên bản". "","Ngành kinh doanh". {"mã số". "LOB45","nhãn". "Tự động hóa"}}]

Trong Eval, chúng ta có thể sử dụng chức năng định dạng chuỗi [thay thế] để thay thế "\" bằng hai "\\".  

Ở đây, chúng ta cần thoát "\" hai lần,

Một trong những cách để thay thế nó,

đạo cụ. conf

EVAL-new_path = replace[path ,"[\\\\]","\\\\\1"]

trong Truy vấn Tìm kiếm

eval new_path = replace[path ,"[\\\\]","\\\\\\1"]

Tôi có chuỗi với đường dẫn tệp. Tôi muốn thay thế tất cả dấu gạch chéo ngược đơn ["\"] bằng dấu gạch chéo ngược kép ["\\"]

   var replaceableString = "c:\asd\flkj\klsd\ffjkl";
   var part = /@"\\"/g;
   var filePath = replaceableString .replace[part, /@"\\"/];
   console.log[filePath];

Bảng điều khiển đã cho tôi thấy điều đó

   c:asdlkjklsdfjkl

Tôi đã tìm thấy thứ gì đó như thế này, tiếc là nó không hoạt động.
Thay thế \ bằng \\

Giải pháp tốt nhất

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];

Điều này sẽ cảnh báo bạn

   c:asdlkjklsdfjkl
9 vì '\' là ký tự thoát sẽ không được xem xét

Để có dấu gạch chéo ngược trong chuỗi của bạn, bạn nên làm như thế này

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];

Điều này sẽ cảnh báo bạn

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
0

JSFiddle

Tìm hiểu về Escape sequence tại đây

Nếu bạn muốn chuỗi của mình có '\' theo mặc định, bạn nên thoát nó. Sử dụng hàm thoát []

var replaceableString = escape["c:\asd\flkj\klsd\ffjkl"];
alert[replaceableString];

JSFiddle

Giải pháp liên quan

Cách thay thế một ký tự bằng một dòng mới trong Vim

Sử dụng
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
1 thay vì
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2

Thay thế bằng

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2 sẽ chèn một ký tự null vào văn bản. Để có một dòng mới, hãy sử dụng
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
1. Tuy nhiên, khi tìm kiếm một dòng mới, bạn vẫn sử dụng
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2. Sự bất đối xứng này là do
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2 và
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
1 làm những việc hơi khác nhau

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2 khớp với cuối dòng [dòng mới], trong khi
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
1 khớp với dấu xuống dòng. Mặt khác, khi thay thế,
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2 sẽ chèn một ký tự null trong khi
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
1 sẽ chèn một dòng mới [chính xác hơn, nó được coi là CR đầu vào]. Đây là một ví dụ nhỏ, không tương tác để minh họa điều này, sử dụng tính năng dòng lệnh Vim [nói cách khác, bạn có thể sao chép và dán đoạn mã sau vào thiết bị đầu cuối để chạy nó].
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
2 hiển thị một hexdump của tệp kết quả

   c:asdlkjklsdfjkl
9
var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
0

Nói cách khác,

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
2 đã chèn byte 0x00 vào văn bản;

Javascript – Cách thay đổi lớp của phần tử bằng JavaScript

Kỹ thuật HTML5 hiện đại để thay đổi lớp

Các trình duyệt hiện đại đã thêm classList cung cấp các phương thức giúp thao tác với các lớp dễ dàng hơn mà không cần thư viện

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
3

Thật không may, những thứ này không hoạt động trong Internet Explorer trước v10, mặc dù có một miếng đệm để thêm hỗ trợ cho IE8 và IE9, có sẵn từ trang này. Tuy nhiên, nó ngày càng được hỗ trợ nhiều hơn

Giải pháp đa trình duyệt đơn giản

Cách JavaScript tiêu chuẩn để chọn một phần tử là sử dụng

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
5, đây là cách mà các ví dụ sau sử dụng - tất nhiên bạn có thể lấy các phần tử theo những cách khác và trong tình huống phù hợp, có thể chỉ cần sử dụng
var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
6 thay thế - tuy nhiên, việc đi sâu vào chi tiết về điều này là vượt quá khả năng của bạn.

Để thay đổi tất cả các lớp cho một phần tử

Để thay thế tất cả các lớp hiện có bằng một hoặc nhiều lớp mới, hãy đặt thuộc tính className

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
6

[Bạn có thể sử dụng danh sách được phân cách bằng dấu cách để áp dụng nhiều lớp. ]

Để thêm một lớp bổ sung vào một phần tử

Để thêm một lớp vào một phần tử mà không xóa/ảnh hưởng đến các giá trị hiện có, hãy thêm một khoảng trắng và tên lớp mới, như vậy

var replaceableString = "c:\asd\flkj\klsd\ffjkl";
alert[replaceableString];
7

Để xóa một lớp khỏi một phần tử

Để xóa một lớp đơn lẻ thành một phần tử mà không ảnh hưởng đến các lớp tiềm năng khác, cần phải thay thế biểu thức chính quy đơn giản

   c:asdlkjklsdfjkl
0

Một lời giải thích của regex này là như sau

   c:asdlkjklsdfjkl
1

Cờ

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
7 yêu cầu thay thế lặp lại theo yêu cầu, trong trường hợp tên lớp đã được thêm nhiều lần

Để kiểm tra xem một lớp đã được áp dụng cho một phần tử chưa

Biểu thức chính được sử dụng ở trên để xóa một lớp cũng có thể được sử dụng để kiểm tra xem một lớp cụ thể có tồn tại hay không

   c:asdlkjklsdfjkl
2
### Chỉ định những hành động này cho sự kiện title.

Mặc dù có thể viết JavaScript trực tiếp bên trong các thuộc tính sự kiện HTML [chẳng hạn như

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
8], đây không phải là hành vi được khuyến nghị. Đặc biệt trên các ứng dụng lớn hơn, mã dễ bảo trì hơn đạt được bằng cách tách phần đánh dấu HTML khỏi logic tương tác JavaScript

Bước đầu tiên để đạt được điều này là tạo một hàm và gọi hàm đó trong thuộc tính title chẳng hạn

   c:asdlkjklsdfjkl
3

[Không bắt buộc phải có mã này trong thẻ tập lệnh, đây chỉ đơn giản là ví dụ ngắn gọn và bao gồm JavaScript trong một tệp riêng biệt có thể phù hợp hơn. ]

Bước thứ hai là di chuyển sự kiện title ra khỏi HTML và chuyển sang JavaScript, chẳng hạn như sử dụng addEventListener

   c:asdlkjklsdfjkl
4

[Lưu ý rằng cửa sổ. phần onload là bắt buộc để nội dung của hàm đó được thực thi sau khi HTML tải xong - nếu không có phần này, MyElement có thể không tồn tại khi mã JavaScript được gọi, do đó dòng đó sẽ bị lỗi. ]


Thư viện và khung JavaScript

Đoạn mã trên đều ở dạng JavaScript tiêu chuẩn, tuy nhiên, thông thường người ta sử dụng khung hoặc thư viện để đơn giản hóa các tác vụ thông thường, cũng như hưởng lợi từ các lỗi đã sửa và các trường hợp cạnh mà bạn có thể không nghĩ đến khi viết mã của mình

Mặc dù một số người cho rằng việc thêm khung ~50  KB chỉ để thay đổi một lớp là quá mức cần thiết, nhưng nếu bạn đang thực hiện bất kỳ khối lượng đáng kể nào đối với JavaScript hoặc bất kỳ thứ gì có thể có hành vi bất thường trên nhiều trình duyệt, thì bạn nên cân nhắc

[Đại khái, thư viện là một bộ công cụ được thiết kế cho một nhiệm vụ cụ thể, trong khi một khung thường chứa nhiều thư viện và thực hiện một bộ nhiệm vụ hoàn chỉnh. ]

Các ví dụ trên đã được sao chép bên dưới bằng cách sử dụng jQuery, có lẽ là thư viện JavaScript được sử dụng phổ biến nhất [mặc dù cũng có những ví dụ khác đáng để nghiên cứu]

[Lưu ý rằng

var replaceableString = "c:\\asd\\flkj\\klsd\\ffjkl";
alert[replaceableString];
9 ở đây là đối tượng jQuery. ]

Thay đổi lớp học với jQuery

   c:asdlkjklsdfjkl
5

Ngoài ra, jQuery cung cấp lối tắt để thêm một lớp nếu nó không áp dụng hoặc xóa một lớp không áp dụng.

Dấu gạch chéo ngược kép có nghĩa là gì trong Javascript?

Dấu gạch chéo ngược kép [\\] Hai dấu gạch chéo ngược được sử dụng làm tiền tố cho tên máy chủ [tên máy chủ] . Ví dụ: \\a5\c\expenses là đường dẫn đến thư mục CHI PHÍ trên C. lái xe trên máy chủ A5.

Dấu gạch chéo ngược kép trong regex là gì?

Ký tự gạch chéo ngược [ \ ] là ký tự thoát. Nó có thể được sử dụng để biểu thị một ký tự thoát, một chuỗi, chữ hoặc một trong các ký tự đặc biệt được hỗ trợ. Sử dụng dấu gạch chéo ngược kép [ \\ ] để biểu thị một chuỗi ký tự đã thoát .

Chủ Đề