我有一个multivalue
textarea
,其中每一行代表一个数组值。
我想在按下输入时删除空行(如果通过角度指令执行此操作,则不在按键上)。预期的结果是当时只能存在一个空行。
我正在尝试使用textareStringValue.replace(/\n{2,}/gm, '\n')
。但是,根据新线的位置和文本插入位置,替换条件会发生变化。
这可以用一个.replace(regExp)
完成吗?
app.directive('noTwolines', function () {
return {
restrict: 'A',
require: '?ngModel',
link: function (scope, element, attrs, ngModel) {
if (!ngModel) return;
ngModel.$parsers.unshift(function (inputValue) {
var digits = inputValue;
var textarea= document.getElementById("textarea");
var val = textarea.value;
var caretPos = val.slice(0, textarea.selectionStart).length;
console.log(inputValue.length);
console.log(val.slice(0, textarea.selectionStart).length);
if(caretPos === inputValue.length){
console.log('enter from end');
digits= inputValue.replace(/\n{2,}/gm, '\n');
}
if(caretPos < inputValue.length && inputValue.indexOf('\n\n') != -1){
digits= inputValue.replace(/\n{3,}/gm, '\n');
}
ngModel.$setViewValue(digits);
ngModel.$render();
return digits;
});
}
};
});
答案 0 :(得分:0)
/* this replace many empty line to one */
textareStringValue.replace(/\s*\n/g,"\n")