2013-08-27 2 views
0

Как я могу сделать этот код числом символов вместо слов.Как я могу сделать это число символов, введенных из слов

Благодаря

function word_count(){ 
    text_value=CKEDITOR.instances.text_editor_name.getData(); 
    var matches = text_value.replace(/<[^<|>]+?>| /gi,' ').match(/\b/g); 
    var count = 0; 
    if(matches) { 
     count = matches.length/2; 
    } 
    document.getElementById("word_count").innerHTML=count+" words"; 
} 
+2

Вы хотите подсчитать только символы в словах или все символы, такие как непечатаемых? – jcubic

+0

Смотрите эти два плагина CKEditor ([1] (http://ckeditor.com/addon/wordcount), [2] (http://ckeditor.com/addon/stat)), чтобы найти оптимальную реализацию. – oleq

ответ

0

Вы можете использовать это - text_value.length

Модифицированный вашу функцию -

function word_count(){ 
    text_value=CKEDITOR.instances.text_editor_name.getData(); 
    document.getElementById("word_count").innerHTML=text_value.length+" words"; 
} 
+0

Вам не нужно использовать разделенные строки, чтобы иметь длину. – jcubic

+0

oops, Почему я это сделал. Исправлена. Спасибо –

0

Внутри этой функции вы можете использовать text_value.length; вместо того, что используется в настоящее время.

+0

Спасибо за быстрый повтор. Когда я добавляю var matches = text_value.length; значение, которое я получаю, - NaN. Предположим, что вы заменили что-то еще. – user2607442

+0

Вы должны оставить первую строку, так как это заполняет text_value фактическим значением text_value вашего CKEditor. Сразу после первой строки вы можете 'return text_value.length;' –

0

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

var count= text_value.replace(/<[^<|>]+?>| /gi,' ').match(/\b/g); 
var result = count.length; 

document.getElementById("word_count").innerHTML=result +" characters"; 

Взятые из http://www.hscripts.com/tutorials/javascript/string-length-method.php

+0

Вам также нужно удалить часть '.match()'. Обратите также внимание на то, что JS «учебник» очень низкое качество, учитывая, что он описывает '.length' как метод и функцию (когда это не так), и говорит, что результат будет иметь тип переменной« integer », когда на самом деле это будет быть «числом» (хотя, конечно, число будет целым). – nnnnnn

+0

Я согласен с nnnnnnn наилучшим образом, я бы добавил немного кода и выполнил замену сначала, а затем изменил имя var на «что-то еще», поскольку он также упрощает проверку. – indofraiser

+0

_ «лично я бы добавил немного к коду» _ - Но это ваш ответ, так почему вы не включили это в ответ? Я говорю, что ваш ответ не работает. '.match()' возвращает массив или 'null', а не строку. – nnnnnn

Смежные вопросы