我正在開發(fā)一個小型項(xiàng)目。
該項(xiàng)目的目標(biāo)是去除格式(雙空格、數(shù)字和換行符),然后輸出該值,并每隔“x”個字符換行一次,但確保它以逗號或句點(diǎn)結(jié)尾。 p>
例如...如果我將字符限制設(shè)置為 50(在“until”中的“l(fā)”之后),我希望它如下所示。請注意,該示例傾向于使用標(biāo)點(diǎn)符號而不是字符限制,但它不會添加換行符,除非您至少接近字符限制(我添加了額外的逗號以進(jìn)一步解釋):
“敏捷的棕色狐貍跳過了懶狗,
直到那只狗睡著了。”
而不是(字符限制):
“敏捷的棕色狐貍跳過了懶狗,直到
那只狗睡著了?!?/p>
或(標(biāo)點(diǎn)符號):
“快,
棕色狐貍跳過懶狗,
直到那只狗,
睡著了。”
如果您希望我當(dāng)前的代碼(刪除雙空格、數(shù)字和換行符)能夠正常工作...
<script> function printText() { var inputValue = document.getElementById("paste-text").value; function editText() { inputValue = inputValue.replace(/(\r\n|\n|\r)/g, ' '); inputValue = inputValue.replace(/[0-9]/gm, ' '); inputValue = inputValue.replace(/(\s\s\s\s)/gm, ' '); inputValue = inputValue.replace(/(\s\s)/gm, ' '); inputValue = inputValue.trim(); return inputValue; } if (inputValue.length > 0) { document.getElementById("text-output").innerText = editText(); document.getElementById("edit-text-output").classList.add("showEdited"); } } </script> <section> <div class="edit-text-container"> <div class="edit-text-input"> <div class="edit-text-paste"> <h3>Paste Text</h3> <div class="edit-text-input-area"> <textarea name="paste-text" id="paste-text" rows="6" placeholder="Paste Text Here"></textarea> </div> <input type="submit" value="Remove Formatting" onclick="printText()"> </div> </div> <div id="edit-text-output"> <h3>Your <i>edited</i> Text</h3> <div class="edit-text-output-area"> <textarea readonly id="text-output" rows="6"></textarea> </div> </div> </div> </section> <style> textarea { margin:0; width:100%; padding:16px; } #edit-text-output { height:0px; overflow:hidden; opacity:0; transition: all 0.5s;} .showEdited { height:185px!important; opacity:1!important; } .edit-text-container { justify-content:center; text-align:center; } input[type=submit] { margin-top:16px; } </style>
再說一次,這是一個個人項(xiàng)目,所以不要急于尋求解決方案/如果不可能,也沒有問題。
我嘗試通過 Javascript 執(zhí)行基本的 if/else 語句,但沒有成功。我對 jQuery 和 Javascript 有基本的了解,所以我可能會因?yàn)槿狈χR而受到限制。
在查找解決方案時,我弄清楚了如何在字符限制處創(chuàng)建換行符并在標(biāo)點(diǎn)符號處創(chuàng)建換行符,但由于某種原因,我無法弄清楚如何在標(biāo)點(diǎn)符號處創(chuàng)建換行符最喜歡的功能。
目前,這是內(nèi)部矛盾的。
您的需求描述存在幾個問題:
我認(rèn)為您希望換行符能夠表達(dá)一個單詞,不是嗎?但你還沒有提到這一點(diǎn)。
如果單詞長度超過 50 個字符會怎樣?
“確保”語句與可能存在不帶逗號或句點(diǎn)的 50 個字符的可能性相沖突。
您的意思是每行長度不得超過 50 個字符嗎?如果單詞長度超過 50 個字符,則必須將其拆分。 [考慮一下如果 50 個字符的單詞就在逗號之前,您希望發(fā)生什么:您希望逗號換行還是單詞拆分,或者將行延長到 51 個字符。如果您想要最后一個,則必須重新措辭此規(guī)則。]
關(guān)鍵是要清楚自己想要什么。如果您能夠明確地表達(dá)這一點(diǎn),那么您通??梢暂p松地對其進(jìn)行編碼。問題在于,在非編程世界中,大多數(shù)人的描述都含糊不清,直到我們開始編寫代碼時我們才意識到這一點(diǎn)。