如何限制textarea中每行的字符数?

Dav*_*vid 8 javascript extjs

我有一个Ext JS TextArea.我想在每行中将我的字符限制为15个字符,总行数不应超过10个.

我在这里要做的是

function(){
    var myValue = this.getValue();
    var myValueData = myValue.split(/\r*\n/);
    myValueData.length = 10;    
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,它应该省略第10行之后的所有行,但不会发生.另外如何限制每行最多15个字符?

dev*_*bnz 5

您可以尝试一下,虽然不完美,但应该可行。

也许它会更好,而不是使用更改侦听器,覆盖组件上的 setValue 或 setRawValue 函数。

https://fiddle.sencha.com/#view/editor&fiddle/2js1

   {
                xtype: 'textareafield',
                grow: true,
                name: 'message',
                fieldLabel: 'Message',
                anchor: '100%',
                listeners: {
                    change: function (cmp, newVal, oldVal) {
                        var arrayForEachLine = newVal.split(/\r\n|\r|\n/g);
                        var newVal = [];
                        Ext.Array.each(arrayForEachLine, function (line, index) {
                            if (line.length >= 10) {
                                offset = line;
                                while (offset.length > 0) {
                                    newVal.push(offset.substring(0, 10));
                                    offset = offset.substring(10);
                                }

                            } else {
                                newVal.push(line);
                            }
                            if (index === 10) return false;
                            if (newVal.length >= 10) {
                                newVal = newVal.slice(0, 10);
                                return false;
                            }
                        });
                        cmp.suspendEvent('change');
                        cmp.setValue(newVal.join('\n'));
                        cmp.resumeEvent('change');
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)