Javascript 自动调整文本区域大小不规则+;突出显示括号

Javascript 自动调整文本区域大小不规则+;突出显示括号,javascript,jquery,textarea,syntax-highlighting,parentheses,Javascript,Jquery,Textarea,Syntax Highlighting,Parentheses,我正在尝试创建一个简单的文本区域,它将根据文本进行扩展。我还想突出显示括号。这一切都相当不错,但并不完美。我用一个隐藏的 test test 然后按回车键,你就会明白我的意思了 其次是突出括号的问题。如果我插入一些相当大的东西,比如:()()()()()()()()(()()(()(()()()() 更疯狂的是,复制这种虫子的是 undefined, undefined, undefined, 1, 2, 2, 1 无论遇到什么问题,我们都非常感谢您的帮助 这里有一个链接,指向“摆弄代码”:

我正在尝试创建一个简单的文本区域,它将根据文本进行扩展。我还想突出显示括号。这一切都相当不错,但并不完美。我用一个隐藏的

test
test
然后按回车键,你就会明白我的意思了

其次是突出括号的问题。如果我插入一些相当大的东西,比如:
()()()()()()()()(()()(()(()()()()

更疯狂的是,复制这种虫子的是

undefined, undefined, undefined, 1, 2, 2, 1
无论遇到什么问题,我们都非常感谢您的帮助

这里有一个链接,指向“摆弄代码”:


提前感谢!

如果括号不匹配,则不应计算深度。例如

0, 0, 0, 1, 2, 2, 1
深度应该是,

.defaultEm:{
  font-size:1em;
  position:absolute;
  line-height:1;
  padding:0;
  visibility:hidden
}

只需将不匹配的括号涂成红色,并按级别将匹配的括号涂成红色即可


按enter键时,文本会跳起来,因为您忽略了文本底部的空行。您也应该添加其高度

css

var newHeight = $(newId + " pre").height() + getDefaultFontSize()[1]; //adding a height of line
脚本


固定高度:

Hi。谢谢你的JSFIDLE。它是公共域还是其他什么?你介意我为它创建一个github项目吗(当然是你的全部学分)?Bump@Ertug。见上面的评论。Hi。谢谢你的问题。你的代码是公共域还是其他什么?你介意我为它创建一个github项目吗(当然是你的满分)?(顺便说一句,我问了Ertug同样的问题)
.defaultEm:{
  font-size:1em;
  position:absolute;
  line-height:1;
  padding:0;
  visibility:hidden
}
function getDefaultFontSize(pa){
     pa= pa || document.body;
     var who= document.createElement('span');
     who.className= 'defaultEm';
     who.appendChild(document.createTextNode('M'));
     pa.appendChild(who);
     var fs= [who.offsetWidth, who.offsetHeight];
     pa.removeChild(who);
     return fs;
}
var newHeight = $(newId + " pre").height() + getDefaultFontSize()[1]; //adding a height of line