Как считать буквы в JavaScript?

1

Это рабочий код для проверки количества слов, но мне нужно подсчитать по буквам:

$(document).ready(function() {
    $("#word_count").on('keyup', function() {
        var words = this.value.match(/\S+/g).length;

           $('#display_count').text(words);
            $('#word_left').text(10-words);


 if(words > 10) {
        $('input[type="submit"]').attr('disabled' , true);
           var trimmed = $(this).val().split(/\s+/, 10).join(" ");
            $(this).val(trimmed + " ");
    }else{
        $('input[type="submit"]').attr('disabled' , false);
    }

    });
 }); 
  • 1
    Похоже, это вопрос JavaScript. Вы также пометили его с помощью php.
  • 8
    Вы пробовали this.value.length ? или this.value.replace(/ /g,"").length
Показать ещё 1 комментарий
Теги:

5 ответов

2

Один из способов решить эту проблему:

let str = 'how to count letters in javascript.'
let letterCount = str.replace(/\s+/g, '').length;

console.log(letterCount) //30
0

//using javascript
var a = document.getElementById("inp");
a.addEventListener("keyup",function(){
document.getElementById("count").innerHTML = "Count :" + " "+ a.value.length;
})
<input type="text"  id="inp">
<br>
<span id="count">Count :</span>
0

Используйте регулярное выражение, чтобы опустить символы, отличные от слова, и затем рассчитать длину после их присоединения.

let str = 'how to count letters in javascript.'
let letterCount = str.split(/\W/).join('').length

console.log(letterCount)
0

Вы можете преобразовать строку в массив и отфильтровать все пробелы.

var text = 'Hello world! And all the people';
var length = text.split( '' ).filter( c => c != ' ' ).length;
console.log( length );

Или вы можете заменить все пробелы пустой строкой и затем подсчитать длину строки:

var text = 'Hello world! And all the people';
var length = text.replace( /\s/g, '' ).length
console.log( length );
  • 0
    Не было бы намного проще заменить пробелы .replace(/ /g,"") , чем .split() строку .split() чтобы отфильтровать ее .filter()
  • 0
    Да, есть несколько путей для достижения этой цели. Но мне интересно, что будет более производительным
0

Это считается по буквам, как вы просили. Используйте букву с длиной .length в переменной.

$(document).ready(function() {
    $("#word_count").on('keyup', function(e) {
        var words = this.value.length;//I changed this
        //var words = this.value.match(/\S+/g).length;
           $('#display_count').text(words);
            $('#word_left').text(10-words);


 if(words > 10) {
        $('input[type="submit"]').attr('disabled' , true);
           var trimmed = $(this).val().split(" ").join("");
            $(this).val(trimmed);
    }else{
        $('input[type="submit"]').attr('disabled' , false);
    }

    });
 }); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="text" id="word_count"><br/>
  <input type="submit">
</form>

<p id="dispay_count"></p>

<p id="word_left"></p>
  • 1
    Может быть, добавить некоторые объяснения здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню