[英]Outputting Escape Characters in JavaScript
我認為這是一個簡單的問題,但我在Stackoverflow和Google上都找不到我的答案。 這是我的問題。 我想輸出帶有轉義字符的字符串。 我已經使用了方法document.getElementIdBy()。
這是我的例子
<!DOCTYPE html>
<html>
<head>
<title>JavaScript</title>
</head>
<body>
<p id="example1"></p><br>
<p id="example2"></p><br>
<p id="example3"></p><br>
<p id="example4"></p><br>
<script>
var x = "\"ABC\""
var y = "\'ABC\'"
var z = "ABC\nDEF"
var t = "ABC\bDEF"
document.getElementById("example1").innerHTML=x;
document.getElementById("example2").innerHTML=y;
document.getElementById("example3").innerHTML=z;
document.getElementById("example4").innerHTML=t;
</script>
</body>
</html>
前兩個工作正常。 第三個不創建新行,第四個不創建退格鍵。 我假設變量z像這樣
ABC
DEF
如果我將此內容寫入ap元素,則它必須顯示為:ABC DEF。 因此,我可以理解為什么它沒有按預期出現(如果我將p元素設置為white-space:pre則可以按預期工作)
但是我想知道為什么\\ b轉義符不能按預期工作。 實際上,我期望輸出為:ABDEF(不帶C)。 可能有些邏輯與上層邏輯相似,但我找不到。 有人可以解釋為什么它不起作用嗎?
我認為這些字符只是從HTML剝離的,您可以通過用<br/>
替換\\ n來實現所需的功能
例如
document.getElementById("example3").innerHTML=z.replace("\n","<br/>");
第三個不創建新行
HTML標記中將忽略文本中的新行。 它們被渲染為space
。 使用<pre>
標記保持格式:
<pre id="example3"></pre>
或添加<p>
標記而不是換行:
var z = "<p>ABC</p><p>DEF</p>"
或<br>
var z = "ABC<br>DEF"
第四個不創建退格鍵
不太確定HTML / JS是否支持\\b
。
新行( \\n
)不會在html中生成新行。
所以如果你寫:
<p>first line
second line</p>
您將獲得:第一行第二行。
因此要將\\n
寫入html,必須將其轉換為<br>
。
document.getElementById("example3").innerHTML=z.replace(/\n/g,'<br>');
此正則表達式將所有\\n
替換為<br>
。
\\b
只是帶有代碼8
字符。 僅當您將其發送到輸入框或文本框時,才會發生其特殊行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.