Работаю с CK-Editor и разрешаю пользователям вставлять в него символы. Я не считаю теги HTML символом (я просто игнорирую теги HTML), и если пользователь вводит пробел, я считаю его символом single . Наконец, я только , позволяя пользователям вводить до 50 символов.
Мои проблемы:
1) Если пользователь вставляет 50 символов (включая пробелы), CK-редактор должен считать каждый пробел как символ.
2) Если пользователь вводит больше , то более 50 символов показывают сообщение с предупреждением («Вы не можете ввести более 50 символов») и отображают только 50 символов.
Я пытался сделать:
event.data.dataValue = str.substr(0 , textLimit);
но он всегда избавляется от пробелов и ставит multiple spaces
, как если бы это был single space
.
3) Если пользователь вставит 9 символов 6 раз. Пример: пользователь вставляет 9 символов, затем еще 9, затем еще 9, затем еще 9, затем еще 9, затем еще 9. После того, как пользователь наберет более 50 символов, пользователь должен получить предупреждение («Вы не можете ввести более 50 символов»). ), но все же, покажите 50 символов. Есть ли лучший способ запретить пользователям вставлять более 50 символов? Заранее большое спасибо!
Вот мой код:
Демонстрационная версия: LIVE DEMO
CKEDITOR.instances.foo.on('paste',function(event){
var textLimit = 50;
var str = event.data.dataValue.replace(/<[^>]+>/g, '').replace(/ /g, ' ');
if (str.length >= textLimit) {
event.data.dataValue = str.substr(0 , textLimit);
}
});
Примечание:
- Я использую этот сайт для подсчета символов - https://www.lettercount.com/
- Вот изображение, показывающее, как я считаю пробелы:
![enter image description here](https://i.stack.imgur.com/or6Fp.png)