Регулярное выражение /\b\w{3,6}\b/
соответствует «слову» длиной от 3 до 6 символов. Теперь это определение слова может подходить или не соответствовать вашим целям, но, вероятно, оно близко.
С этим вы можете сделать что-то вроде:
var matches = theString.match(/\b\w{3,6}\b/g).length;
чтобы получить счет.
Экранирование "\ w" соответствует любому символу "слово", что в JavaScript означает буквенно-цифровые символы и подчеркивание. Если вам это не нравится, вы можете создать свой собственный класс персонажей. Например, если вы заботитесь только о словах, состоящих из букв, вы можете сделать следующее:
var matches = theString.match(/\b[a-zA-Z]{3,6}\b/g).length;
Экранирование "\ b" - это совпадение нулевой длины для разграничения слов. Он совпадает либо с началом, либо с концом слова, но при этом сам «не потребляет» никаких символов.
изменить & mdash; извините, я изначально набрал "." в квалификаторе {3,6}
(и я чуть не повторил это только сейчас :-) & mdash; должны были быть запятые.