Как посчитать количество букв в случайной строке? [закрытый]
Если есть случайная строка get from SERVER:
var str='I am a student in XXX university, I am interested...'
В str
может содержаться произвольное число слов с пробелами. Вот только содержание строки непредсказуемо.
В javascript, как подсчитать количество букв в строке (пробелы между словами являются исключающими из подсчета). Например, "у меня есть машина" должно насчитываться 9 букв.
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);
Вы можете вычислить количество совпадений с помощью регулярного выражения
\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;
Подсчитайте количество пробелов (например, 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)));Примечание: он правильно считает двойные пробелы и пробелы на концах.