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中使用HTML標籤來進行線斷路嗎? “
”標籤可用於添加線路休息。例如,當在HTML文檔中顯示時,“ Hello世界”將在“ Hello”和“ World”之間增加界限。
>
>在JavaScript評論中,線結尾在JavaScript中的作用是什麼? JavaScript中的單行評論從“ //”開始,並在劃線中斷。同一行上的“ //”之後的所有內容都被視為評論,並被JavaScript解釋器忽略。
>我如何在JavaScript字符串中處理行末端?
在JavaScript字符串中,可以使用“ N”的逃生序列處理線端。該序列將新線字符插入字符串中,有效地創建了一個折斷。這意味著,即使您忘記在語句末尾放置半隆,JavaScript仍然會正確解釋它。 >
>我可以使用行末端來格式化我的JavaScript代碼?
是的,可以使用行末端來格式化JavaScript代碼。正確使用線路結尾可以使您的代碼更易讀,更易於維護。通常的做法是為每個語句或在代碼塊(例如函數或循環)之後開始新的行。>
>行結尾如何影響JavaScript代碼的執行?但是,它們還可以根據自動插入(ASI)來影響代碼的執行。如果將線路結束錯誤地放置,則可能會由於半旋律的自動插入而導致意外結果。因此,正確理解和使用線路結尾很重要。>
以上是JavaScript中的線路結尾的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

zustand異步操作中的數據更新問題在使用zustand狀態管理庫時,經常會遇到異步操作導致數據更新不及時的問題。 �...
