Ich arbeite an einem kleinen Projekt.
Das Ziel dieses Projekts besteht darin, die Formatierung (doppelte Leerzeichen, Zahlen und Zeilenumbrüche) zu entfernen und dann den Wert mit einem Zeilenumbruch alle „x“ Zeichen auszugeben, aber sicherzustellen, dass er mit einem Komma oder Punkt endet. p>
Wenn ich zum Beispiel die Zeichenbeschränkung auf 50 (nach dem „l“ in „bis“) setze, möchte ich, dass es so aussieht. Beachten Sie, dass im Beispiel die Zeichensetzung Vorrang vor der Zeichenbeschränkung hat, aber keine Zeilenumbrüche hinzugefügt werden, es sei denn, Sie sind zumindest nahe an der Zeichenbeschränkung (ich habe die zusätzlichen Kommas hinzugefügt, um dies näher zu erläutern):
„Der flinke Braunfuchs sprang über den faulen Hund,
Bis der Hund einschläft.
statt (Zeichenbeschränkung):
„Der flinke Braunfuchs sprang über den faulen Hund bis
Der Hund schläft.
oder (Satzzeichen):
"Beeilen Sie sich,
Der Braunfuchs springt über den faulen Hund,
Bis zu diesem Hund,
Schlafend.
Wenn Sie möchten, dass mein aktueller Code (Entfernen von doppelten Leerzeichen, Zahlen und Zeilenumbrüchen) funktioniert ...
<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>
Auch hier handelt es sich um ein persönliches Projekt. Überstürzen Sie also nicht die Lösung. Wenn dies nicht möglich ist, ist das in Ordnung.
Ich habe erfolglos versucht, einfache if/else-Anweisungen über Javascript auszuführen. Ich verfüge über grundlegende Kenntnisse von jQuery und Javascript, daher kann es sein, dass ich durch mangelnde Kenntnisse eingeschränkt bin.
Auf der Suche nach einer Lösung habe ich herausgefunden, wie man bei Zeichenbegrenzungen einen Zeilenumbruch und bei Interpunktion einen Zeilenumbruch erstellt, aber aus irgendeinem Grund konnte ich nicht herausfinden, wie man bei Interpunktion einen Zeilenumbruch erstellt. Lieblingsfunktion.
在编写下一部分代码之前,请确保您的要求明确
目前,这是内部矛盾的。
您的需求描述存在几个问题:
我认为您希望换行符能够表达一个单词,不是吗?但你还没有提到这一点。
如果单词长度超过 50 个字符会怎样?
“确保”语句与可能存在不带逗号或句点的 50 个字符的可能性相冲突。
您的意思是每行长度不得超过 50 个字符吗?如果单词长度超过 50 个字符,则必须将其拆分。 [考虑一下如果 50 个字符的单词就在逗号之前,您希望发生什么:您希望逗号换行还是单词拆分,或者将行延长到 51 个字符。如果您想要最后一个,则必须重新措辞此规则。]
我建议像这样列出要求:
如果上述内容是您想要完成的,那么它就是编写代码的良好基础
关键是要清楚自己想要什么。如果您能够明确地表达这一点,那么您通常可以轻松地对其进行编码。问题在于,在非编程世界中,大多数人的描述都含糊不清,直到我们开始编写代码时我们才意识到这一点。