Привет. Сегодня разберемся с одной прикольной штуковиной: как сделать калькулятор количества символов в тексте на Javascript. Эта функция постоянно используется для написания текстов для сайтов (потому, что SEO требует, чтобы текста было не меньше чем задано), и довольно часто можно встретить в контактных формах на сайтах, где она используется для индикации «Сколько символов осталось ввести в поле».
Например, подсчет количества введенных символов используется в операционных системах для удаленного подключения к рабочему месту, когда нужно ввести IP адрес удалённого компьютера. Чётко известно, что в окно для удалённого подключения нужно ввести IP адрес в формате IP4, в котором должно быть от 7 до 15 символов (каждый сегмент адреса может быть от 0 до 255, то есть по 3 символа, всего сегментов 4, сегменты разделены точками). Тут подсчет количества введенных символов очень нужен.
Как же сделать калькулатор количества символов в тексте на Javascript
Для этого нужно написать функцию, которая будет получать на вход строку с текстом, удалять из неё лишние символы (пробелы, знаки препинания) и считать количество символов, которые остались.
var charCount=function(text){ var new_text=text.replace(/[\.,!?; ]*/g, ''); return new_text.length; }
В первой строчке функции мы заменяем все знаки пунктуации на пустоту при помощи регулярного выражения, а во второй – рассчитываем количество оставшихся символов и выдаём результат функции.
Всё, функция, которая будет считать символы у нас готова. Давайте теперь сделатем так, чтобы она работала и показывала результат при вводе символов в textarea.
Для этого, напишем HTML код:
Теперь напишем функции на javascript, которые будут обрабатывать ввод текста в textarea и запускать калькулятор количества символов в тексте.
function charCount(text){ return text.replace(/[\.,!?; ]*/g, '').length; } function g(el){ return document.getElementById(el); } g('input').onkeyup=function(){ g('label').innerHTML=charCount(this.value); }
Здесь для удобства мы сделали обертку для функции document.getElementById, чтобы ускорить процесс написания назвали эту фукнцию g().
При нажатии на кнопку в поле textarea (на самом деле, когда эту кнопку уже отпустили), мы получаем значение, которое уже введено в textarea, и запускаем подсчет количества символов. После подсчета выводим данные в label.
Готово.
Для наглядности можно посмотреть на код на jsFiddle.