首頁 > web前端 > js教程 > JavaScript中的線路結尾

JavaScript中的線路結尾

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-03-08 00:49:18
原創
923 人瀏覽過

Line endings in Javascript

JavaScript中的線路結尾

>我今天花了很多時間與JavaScript的線路結尾作鬥爭,並最終取得了一些值得分享的結果 - 如果只是為了拯救其他開發人員從下降到同一調試的黑洞。

您可能知道,謙虛的線路斷裂實際上具有三種形式,具體取決於操作系統正在進行破壞。在Unix機器上,單個Newline字符“ N”可以完成這項工作。在Mac上,使用了托架返回“ R”。 DOS和Windows都使用:“ RN”。如果您不知道要尋找什麼,這是那些相對微妙的問題之一。

>

>今天,我的任務是構建JavaScript功能的簡單問題,以將單個新線轉換為文本方面的新線。我的第一次嘗試看起來像:

var doubleenewlinesre = /([^n])n([^n]) /g; 功能doublenewlines(obj){ obj.value = obj.value.replace(doubleenewlinesre,“ $ 1nn $ 2”); } 雙新線

上面的代碼使用簡單的正則表達式,該表達式找到了不是新線的所有實例,其次是newline,然後是其他不是新線的東西。然後,該模式的實例被相同的模式替換為中間的兩個新線,而不是一個。
>在Windows,Linux和Mac上的Firefox中效果很好,因為Firefox將Newlines視為“ N”,無論其運行方式如何。它在IE上為Windows和IE打破了Macintosh,因為這些瀏覽器分別使用“ RN”和“ R”。

>

足夠公平。解決此問題的通常解決方案是在運行轉換之前將線路結尾歸一化,通過將三個組合替換為您的首選項的單個結尾(在我的情況為“ n”)中。這是我第二次嘗試該功能:

功能doublenewlines(obj){ obj.value = obj.value.replace(/(rn | r | n)/g,'n'); obj.value = text.replace(doubleenewlinesre,“ $ 1nn $ 2”); }

那也沒有用。經過大量的刮擦,調試和用警報框進行調試和戳戳之後,我終於發現了Internet Explorer的無證且幾乎令人討厭的晦澀難懂的“功能”:當您將字符串分配給輸入對象的值屬性時,IE默默地將您的NICE'N'線路轉換為平台端。 Microsoft的文檔沒有註意到這一點,但我已經確認這在Internet Explorer的Windows和Mac版本上都會發生。

>
> bizzare,如果您分配給隱藏表單字段對象的值屬性,則不會進行轉換;僅當您分配到文本區域時,線路結尾才會更改。

以下代碼,儘管函數似乎與剛剛列出的代碼相同,但確實可以做我想要的代碼:

>功能doublenewlines(obj){ var text = obj.value; text = text.replace(/(rn | r | n)/g,'n'); obj.value = text.replace(doubleenewlinesre,“ $ 1nn $ 2”); }


這樣可以正常工作,因為標準化版本被分配給變量,而不是直接分配給TextArea對象的值屬性 - 因此,IE的自動段線結束轉換被延遲到腳本結束,並且沒有使用我的第二個正則表達式發揮破壞。

>最後,關於樣式的註釋。如果我一直在考慮重複使用代碼,而不是迅速解決問題,那麼我可能會想出這樣的事情:

> 功能doublenewlines(text){ text = text.replace(/(rn | r | n)/g,'n'); 返回text.replace(doubleenewlinesre,“ $ 1nn $ 2”); } 雙新線

儘管它需要在OnClick處理程序中進行更多代碼,但僅將字符串操作抽象抽象,但我將完全避免怪異的線結束轉換問題。不過,至少我已經了解了另一個IE的小怪癖。 >
經常詢問有關JavaScript中線結尾的問題(常見問題解答)

> JavaScript中的線路結尾的重要性是什麼?在JavaScript中,每個語句都被半分離(;)隔開。但是,JavaScript口譯員足夠聰明,可以在線路結束時自動插入半剛性,如果缺失。此功能稱為自動插入(ASI)。儘管如此,手動將半隆來包括在JavaScript中如何添加JavaScript?

,您可以在JavaScript中添加新線路,這是良好的做法。新系列的逃生序列是“ n”。例如,如果您想在兩個句子之間添加一條新線,則可以這樣做:“ Hellonworld”。當打印此字符串時,“ Hello”和“ world”將在單獨的行上。

>在JavaScript中'N'和'rn'之間有什麼區別?但是,根據操作系統,它們的使用方式不同。 “ N”在基於UNIX的系統(例如Linux和Mac)中用作Newline字符,而Windows中使用了“ RN”。 “ r”字符代表一個馬車返回,它將光標移至線路的開頭而不前進到下一行。

>

>如何在JavaScript中添加多個線路斷裂?

在JavaScript中添加多個線路斷路,您可以使用“ N”'''''Escape序列多次使用多次。例如,“ Hellonnworld”將在“ Hello”和“ World”之間增加兩個線路。

>

>我可以在JavaScript中使用HTML標籤來進行線斷路嗎? “

”標籤可用於添加線路休息。例如,當在HTML文檔中顯示時,“ Hello

世界”將在“ Hello”和“ World”之間增加界限。
>
>在JavaScript評論中,線結尾在JavaScript中的作用是什麼? JavaScript中的單行評論從“ //”開始,並在劃線中斷。同一行上的“ //”之後的所有內容都被視為評論,並被JavaScript解釋器忽略。

>

>我如何在JavaScript字符串中處理行末端?

在JavaScript字符串中,可以使用“ N”的逃生序列處理線端。該序列將新線字符插入字符串中,有效地創建了一個折斷。這意味著,即使您忘記在語句末尾放置半隆,JavaScript仍然會正確解釋它。

>

>我可以使用行末端來格式化我的JavaScript代碼?

​​

是的,可以使用行末端來格式化JavaScript代碼。正確使用線路結尾可以使您的代碼更易讀,更易於維護。通常的做法是為每個語句或在代碼塊(例如函數或循環)之後開始新的行。

>

>行結尾如何影響JavaScript代碼的執行?但是,它們還可以根據自動插入(ASI)來影響代碼的執行。如果將線路結束錯誤地放置,則可能會由於半旋律的自動插入而導致意外結果。因此,正確理解和使用線路結尾很重要。

>

以上是JavaScript中的線路結尾的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板