#javascript #html
#javascript #HTML
Вопрос:
В настоящее время по умолчанию всегда указывается «Слова:» и «Символы:». В случае 1 слова «слова» должны быть изменены на word. Мне не разрешено использовать операторы if только троичные операторы. Любая помощь будет оценена. Как есть, вывод показывает «Слово» независимо от того, что и то же самое с символом. Нужно только сказать «слово» /»символ», когда есть 1 слово и / или 1 символ и множественное число для остальных.
function countWords(self) {
var myText = document.getElementById("myText");
// Using regular expresisons, it matches the spaces in the text
var spaces = self.value.match(/S /g);
// If null set characters to 0, if not sets words to word length
var words = spaces ? spaces.length : 0;
var words = 1 ? document.getElementById("wordCount").innerHTML = "Word: " words : document.getElementById("wordCount").innerHTML = "Words: " words;
// Splits text into characters
var chars = myText.value.split('');
// Counts the amount of charcters and saves
var charCount = chars.length;
// Updates the character Count
document.getElementById("charCount").innerHTML = "Characters: " charCount;
// Updates the word count
// document.getElementById("wordCount").innerHTML = "Words: " words;
var chars = 1 ? document.getElementById("charCount").innerHTML = "Character: " words : document.getElementById("charCount").innerHTML = "Characters: " words;
}
<h1>Type Your Words In The Text Area Below</h1>
<textarea id="myText" rows="10" cols="50" style="text-transform: uppercase" onkeyup="countWords(this);"></textarea>
<br>
<span id="wordCount">Word: </span>
<br>
<span id="charCount">Character: </span>
Комментарии:
1. С чем вы боретесь?
2. @evolutionxbox. На выходе должно быть написано «Word», когда введено только 1 слово, и вернуться к множественному числу «Words:», когда набрано несколько слов.
3. Вы ищете
document.getElementById("wordCount").innerHTML = (words === 1 ? "Word: " : "Words: ") words;
Ответ №1:
Внутри литерала шаблона вы можете проверить words > 1
, является ли это истиной или ложью, объединить 's'
или пустую строку:
document.getElementById("wordCount").innerHTML = `Word${words > 1 ? 's' : ''}: ${words}`;
function countWords(self) {
var myText = document.getElementById("myText");
// Using regular expresisons, it matches the spaces in the text
var spaces = self.value.match(/S /g);
// If null set characters to 0, if not sets words to word length
var words = spaces ? spaces.length : 0;
// Splits text into characters
var chars = myText.value.split('');
// Counts the amount of charcters and saves
var charCount = chars.length;
// Updates the character Count
document.getElementById("charCount").innerHTML = "Characters: " charCount;
// Updates the word count
document.getElementById("wordCount").innerHTML = `Word${words > 1 ? 's' : ''}: ${words}`;
}
<h1>Type Your Words In The Text Area Below</h1>
<textarea id="myText" rows="10" cols="50" style="text-transform: uppercase" onkeyup="countWords(this);"></textarea>
<br>
<span id="wordCount"></span>
<br>
<span id="charCount"></span>