Как посчитать количество букв в случайной строке? [закрытый]


Если есть случайная строка get from SERVER:

var str='I am a student in XXX university, I am interested...'

В str может содержаться произвольное число слов с пробелами. Вот только содержание строки непредсказуемо.

В javascript, как подсчитать количество букв в строке (пробелы между словами являются исключающими из подсчета). Например, "у меня есть машина" должно насчитываться 9 букв.

6 6

6 ответов:

Предполагая, что вам нужны только альфа-символы, сначала избавьтесь от других символов, используя replace():

var str='I am a student in XXX university, I am interested...';

alert(str.replace(/[^A-Z]/gi, "").length);

Вы можете добавить 0-9 в класс символов [^A-Z], Если хотите считать числа буквами. Если вы хотите удалить только пробелы, измените регулярное выражение на /\s/g

Мы разделяем каждое пространство и снова соединяем массив:

var str='I am a student in XXX university, I am interested...'

str = str.split(" ").join("");

alert(str.length);

Http://jsfiddle.net/AwVBJ/

Вы можете вычислить количество совпадений с помощью регулярного выражения \w - которое соответствует любому буквенно-цифровому символу или [a-zA-Z] для любого Альфа-символа

Например:

var numChars = "I have a car".match(/[a-zA-Z]/g).length;
// numChars = 9

Живой пример: http://jsfiddle.net/GBvCp/

И еще один способ:

var str = "I have a car";   
while (str.indexOf(' ') > 0) { 
    str = str.replace(' ' , '');
    }
var strLength = str.length;     
var temp = str;

temp= temp.replace(/[^a-zA-Z]+/g,"");

temp.length даст u число символов

Подсчитайте количество пробелов (например, http://p2p.wrox.com/javascript-how/70527-count-occurrence-character-string.html ), затем вычтите это из длины.


    var testString = ' my test string has  a number of spaces ';
    alert('Number of spaces:' + (testString .replace(/[^ ]/g, '').length));
    alert('Number of characters:' + (testString.length));
    alert('Number of characters excluding spaces:' + 
        (testString.length - (testString     .replace(/[^ ]/g, '').length)));

Примечание: он правильно считает двойные пробелы и пробелы на концах.