使用CK-Editor,我允许用户在其中粘贴字符。我不会将HTML标记计为字符(我只是忽略HTML标记),如果用户输入空格,我将其视为单个字符。最后,我仅允许用户输入最多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/
答案 0 :(得分:-1)
尝试使用wordcount插件。 https://ckeditor.com/cke4/addon/wordcount 在ckeditor文件夹中的config.js上,使用它来配置wordcount。
config.wordcount = {
// Whether or not you want to show the Paragraphs Count
showParagraphs: false,
// Whether or not you want to show the Word Count
showWordCount: false,
// Whether or not you want to show the Char Count
showCharCount: true,
// Whether or not you want to count Spaces as Chars
countSpacesAsChars: true,
// Whether or not to include Html chars in the Char Count
countHTML: false,
// Maximum allowed Word Count, -1 is default for unlimited
maxWordCount: -1,
// Maximum allowed Char Count, -1 is default for unlimited
maxCharCount: 100,
// Add filter to add or remove element before counting (see CKEDITOR.htmlParser.filter), Default value : null (no filter)
filter: new CKEDITOR.htmlParser.filter({
elements: {
div: function (element) {
if (element.attributes.class == 'mediaembed') {
return false;
}
}
}
})
};