Trong VBScript, xâu là được bao quanh bởi dấu ngoặc kép ("
). Đây là những gì ví dụ đầu tiên của bạn hiển thị:
Msgbox "This is myName" ' This works fine
Tuy nhiên, nếu bạn muốn bao gồm một báo ký tự hai bên của chuỗi chữ của bạn, bạn đã có một vấn đề, bởi vì VBScript đang xảy ra để giải thích thứ hai tăng gấp đôi ký tự trích dẫn nó tìm thấy như là dấu hiệu kết thúc của chuỗi chữ. Đây là ví dụ thứ hai của bạn cho thấy:
Msgbox "This is "myName"" ' This gives an error
^ ' because it prematurely terminates the string here
' and doesn't know what to do with the trailing "
May mắn thay, có một lối thoát hiểm. Nó liên quan đến việc trốn thoát ký tự trích dẫn kép với một ký tự khác, cho biết rằng VBScript nên xử lý nó dưới dạng ký tự ngoặc kép, chứ không phải ký tự "kết thúc chuỗi ký tự" huyền diệu. Nó chỉ như vậy xảy ra rằng ký tự thoát VBScript sử dụng là một nhân vật báo giá kép. Đây là những gì ví dụ thứ hai của bạn hiển thị:
Msgbox "This is ""myName""" 'This works fine
- Bạn bắt đầu chuỗi với một đơn đúp báo giá, cho thấy sự khởi đầu của một chuỗi chữ.
- Sau đó, bạn muốn có một ký tự trích dẫn kép được nhúng, do đó bạn sử dụng hai ký tự. Đây là nơi bắt đầu thoát: bạn thoát ký tự dấu ngoặc kép với một ký tự trích dẫn kép khác.
- Sau đó, bạn thực hiện lại điều đó.
- Cuối cùng, bạn chấm dứt toàn bộ chuỗi ký tự bằng một ký tự trích dẫn kép khác.
Các ngôn ngữ khác thường sử dụng dấu gạch chéo ngược (\
) làm ký tự thoát. Điều đó có thể giúp mọi thứ dễ nhìn hơn. Giả sử VBScript sử dụng một dấu gạch chéo là ký tự thoát chứ không phải là một dấu nháy kép, mã của bạn sẽ trông như thế này:
Msgbox "This is \"myName\"" ' doesn't work in VBScript; example only
Nếu cú pháp này làm phiền bạn, bạn có thể khai báo một hằng số cho dấu nháy kép và sử dụng mỗi lần:
Const Quote = """"
' ... later in the code ...
Msgbox "This is " & Quote & "myName" & Quote
Nguồn
2013-04-02 18:26:48