色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 文字換行

錢衛國1年前5瀏覽0評論
在web開發中,JavaScript是不可或缺的一部分,它可以實現一些網頁的動態效果、驗證表單數據等功能。在這些功能實現中,文字換行是十分常見的需求。本文將詳細介紹JavaScript中的文字換行方法,并給出相應代碼實現。 JavaScript中的文字換行,通常是針對文本框或文本域來實現。當輸入的文本超出指定的寬度或行數時,需要進行換行。比如下面這個例子: ```html

請在下方文本框內輸入:

``` 以上代碼實現了一個簡單的文本框和提交按鈕,當點擊提交按鈕時,將彈出輸入的文本框內容。但是,如果輸入的內容過長,超出文本框所定義的尺寸,就需要進行自動換行。 一般來說,自動換行需要通過CSS樣式來實現,比如可以設置white-space為"pre-wrap"或"pre-line",然而該方法可能存在兼容性問題。而JavaScript提供的方法是比較兼容的,我們可以通過JS來動態計算文本的長度和行數,然后插入換行符。 ```html

請在下方文本框內輸入:

``` 以上修改后的代碼,添加了onkeyup事件觸發函數textAreaAdjust()。下面是實現函數: ```javascript function textAreaAdjust(elem) { let rows = elem.rows; let lineHeight = parseInt(getComputedStyle(elem).lineHeight); let height = elem.scrollHeight; let trueRow = Math.floor(height / lineHeight); if (trueRow<= rows) { elem.style.height = 'auto'; } else { elem.style.height = trueRow * lineHeight + 'px'; let lastIndex = elem.value.lastIndexOf('\n'); if (lastIndex != -1) { let value = elem.value.substring(0, lastIndex); elem.value = value; } for (let i = 1; i< trueRow; i++) { let index = i * elem.cols + i - 1; elem.value = elem.value.substring(0, index) + '\n' + elem.value.substring(index); } } } ``` 代碼中的主要邏輯是計算文本框實際所占的行數和長度,如果行數少于等于指定行數,則不進行任何處理;否則,插入換行符。具體做法是在文本框的value中添加"\n",該符號即代表一個換行。需要注意的是,在插入換行符后,需要在最后一行補充回車符。 以上代碼實現了文本框的自動換行,但是在某些情況下,比如在輸入英文或數字時,此方法可能會導致文本框多出一行。為了避免這種情況,我們可以在插入前,檢查最后一行是否已經滿了。如果已經滿了,就不再插入換行符。 ```javascript function textAreaAdjust(elem) { let rows = elem.rows; let lineHeight = parseInt(getComputedStyle(elem).lineHeight); let height = elem.scrollHeight; let trueRow = Math.floor(height / lineHeight) - 1; if (trueRow<= rows) { elem.style.height = 'auto'; } else { elem.style.height = trueRow * lineHeight + 'px'; let lastIndex = elem.value.lastIndexOf('\n'); if (lastIndex != -1 && lastIndex >= trueRow * elem.cols) { let value = elem.value.substring(0, lastIndex); elem.value = value; } for (let i = 1; i< trueRow; i++) { let index = i * elem.cols + i - 1; if (index<= elem.value.length && elem.value.charAt(index) != '\n') { elem.value = elem.value.substring(0, index) + '\n' + elem.value.substring(index); } } } } ``` 以上代碼,在插入換行符前,增加了一個判斷條件,如果最后一行已經滿了,則不再插入。同時,還對原來的計算行數進行了修正。 除文本框外,JavaScript中的文字換行還可以用于增強網頁可閱讀性,比如在一段長文本中,合理插入換行符("\n"或"
"),可以更加美觀清晰。具體實現就是對文本進行正則表達式匹配,根據需要插入相應的換行符。 ```javascript function addLineBreaks(text) { let pattern = /([^\n-;}])({(?:[^{}]*\{[^{}]*\})*[^{}]*})([^\n])/g; return text.replace(pattern, "$1$2\n$3") .replace(/\t/g, " ") .replace(/ +\n/g, "\n") .replace(/\n\n+/g, "\n\n"); } ``` 以上代碼是一個通用的函數,可以增加CSS樣式表文件中的代碼換行。這個函數使用了正則表達式匹配,可以識別大括號內的代碼塊,并在前后插入"\n"以實現換行。需要特別注意的是,換行符不應該出現在代碼塊的結尾,為了避免這種情況,我們可以在后面添加一行單獨的"}"。 在實際開發過程中,文字換行是較為常見的需求,本文介紹了一些實現方式,并給出了相應代碼。需要根據實際情況進行選擇和修改。