gpt4 book ai didi

javascript - 我如何用 {} 替换 {

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:03 26 4
gpt4 key购买 nike

我正在尝试在文本框中开发大括号自动完成功能。我在文本框上尝试了 javascript 替换功能。但是我从函数中得到了一个奇怪的输出。这是我正在处理的代码。

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<input type ="text" id="textbox">
</body>
</html>

Javascript:

var element = document.getElementById('textbox');
element.oninput = function(){
var code = (function(){
var val = element.value;
element.value = val.replace(/\{/ , "{}");
})();
};

当我键入单个 { 大括号时,我得到 {} ,当我键入超过 1 个时,我得到 {}}}{{ 然后它继续......有时我的浏览器在我尝试清除大括号时卡住。

这是 js bin 链接 JSBIN

最佳答案

问题是您总是将 { 替换为 {},即使括号已经匹配。您应该确保它不是 negative lookahead : /\{(?!\})/


要解决退格问题,您应该使用一个事件来告诉您按下了哪个键,例如 onkeyup 并添加一个保护子句。扩展@Andi 的想法,我还为箭头键添加了排除项,这样当您想要浏览文本时就不会被迫到文本框的末尾:

var element = document.getElementById('textbox');
element.onkeyup = function(){
if([8, 37, 39].indexOf(event.which) != -1)
return false;
var code = (function(){
var val = element.value;
element.value = val.replace(/\{(?!\})/g, "{}");
})();
};

关于javascript - 我如何用 {} 替换 {,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31945533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com