2010-03-11 43 views
111

Làm cách nào để thoát khỏi một số ' (trích dẫn một lần) trong JavaScript?Làm cách nào để thoát khỏi một trích dẫn?

Đây là nơi tôi đang cố gắng để sử dụng nó:

<input type='text' id='abc' value='hel'lo'> 

Kết quả cho đoạn code trên là "hel" dân cư trong hộp văn bản. Tôi đã cố gắng thay thế 'bằng \', nhưng điều này tôi đang nhận được.

<input type='text' id='abc' value='hel\'lo'> 

Kết quả cho mã ở trên là "hel \" được điền trong hộp văn bản.

Làm cách nào để thoát khỏi các dấu nháy đơn thành công?

+0

Hey Ravi, đây là chi tiết của một câu hỏi html. Tôi đã gắn thẻ lại câu hỏi dưới dạng HTML, nhưng bạn có thể muốn thay đổi câu hỏi đó trong câu hỏi của mình. –

Trả lời

224

Bạn có thể sử dụng HTML thực thể:

  • &#39; cho '
  • &#34; cho "
  • ...

Để biết thêm, bạn có thể có một cái nhìn tại Character entity references in HTML.

+38

Tại sao * nên * một người sử dụng dấu ngoặc kép cho các giá trị thuộc tính? – Gumbo

+0

aahhhh !! .. Tôi thậm chí không thể nghĩ về điều này. Cảm ơn rất nhiều. :) – Ravi

+0

HUmph; Tôi đoán tôi * nên * đã nói * có thể *, vì nó giúp, trong trường hợp cụ thể này, nhưng không nhất thiết là cần thiết ;; vẫn còn, một * (theo ý kiến ​​của tôi) * lý do tốt sẽ là nó gần gũi hơn với XHTML. –

-1

Bạn có thể thử sử dụng: &#145;

1

Có lẽ cách dễ nhất:

<input type='text' id='abc' value="hel'lo"> 
42

Bạn có thể sử dụng &apos; (tức là trong IE) hoặc &#39; (hoạt động ở mọi nơi). Để biết danh sách toàn diện, hãy xem W3C HTML5 Named Character References hoặc HTML entities table on WebPlatform.org.

+0

Chà, đã lâu rồi tôi mới viết cái này. Cảm ơn bạn đã bắt nó - Tôi đã cập nhật các liên kết đến hai bảng trên W3C và WebPlatform.org. –

+0

Những công việc này "ở khắp mọi nơi" ngoại trừ trong VXML Thuộc tính biểu thức nơi cần thoát hơn vì trong VXML giá trị biến chuỗi được chỉ định dưới dạng dấu nháy đơn trong dấu ngoặc kép bình thường của định nghĩa thuộc tính:

7

Khi bạn đang ở trong ngữ cảnh của HTML, bạn cần sử dụng HTML để biểu thị ký tự đó. Và đối với HTML bạn cần phải sử dụng một (thập lục phân &#x27;) numeric character reference&#39;:

<input type='text' id='abc' value='hel&#39;lo'> 
+0

nhưng tôi không hiểu ý của bạn là gì' ngữ cảnh của html'? –

+0

@coding_idiot Hãy xem các mã thông báo HTML khác nhau có thể gặp phải trong quá trình phân tích cú pháp] (http://www.w3.org/TR/html5/syntax.html#tokenization). Mỗi trạng thái có một bộ quy tắc phân tích cú pháp khác nhau được kích hoạt dựa trên đầu vào. Không phải mọi trạng thái đều cho phép tham chiếu ký tự. Bây giờ, nếu bạn nhìn vào [giá trị thuộc tính (đơn được trích dẫn)] (http: //www.w3.org/TR/html5/syntax.html#attribute-value- \ (single-quoted \) -state), bạn có thể thấy rằng một '&' biểu thị sự bắt đầu của một tham chiếu ký tự. – Gumbo

5

Trình bày nó như một thực thể văn bản (ASCII 39):

<input type='text' id='abc' value='hel&#39;lo'> 
Các vấn đề liên quan