gpt4 book ai didi

javascript - 替换正则表达式后,我失去了对 <input> 的关注

转载 作者:行者123 更新时间:2023-11-28 00:40:30 24 4
gpt4 key购买 nike

这是无效的代码:

// money related syntax (yellow)
var SyntaxmoneyReg = /\b(StartingCurrency|Hello)(?=[^\w])/g

function myFunction() {
var input = document.getElementById("myInput")
var data = input.value;
document.getElementById("demo").innerHTML = "You wrote: " + data;
data = data.replace(SyntaxmoneyReg, '<span class="code-money">$1</span>');
input.innerHTML = data;
document.getElementById("myInput").focus();
}
.code-money { color:blue; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>

<p>Write something in the text field to trigger a function.</p>

<input type="text" id="myInput" oninput="myFunction()" contenteditable="true">

<p id="demo"></p>

</body>
</html>

在我的“data.replace”检测到匹配后,每次我输入一个字母时,我都会失去文本框的焦点。

最佳答案

我已经移动了 </span>从初始数据替换。 问题 在于 $1</span> .

修改$i+'</span>' 修复失去焦点的问题

要激活您的 span 样式,您需要修复您的 innerHTML。问题出在document.getElementById("demo").innerHTML = "You wrote: " + data; .您可以删除 document.getElementById("demo").innerHTML = "You wrote: " + data;input.innerHTML = data; .

添加 var div= document.querySelector('div');

然后修改 div.innerHTML = "You wrote: " + data;

解决问题。

您还可以删除 document.getElementById("myInput").focus();这是多余的。

尝试以下 fiddle :

// money related syntax (yellow)
var SyntaxmoneyReg = /\b(StartingCurrency|Hello)(?=[^\w])/g

function myFunction() {
var input = document.getElementById("myInput");
var div= document.querySelector('div');
var data = input.value;
data = data.replace(SyntaxmoneyReg, '<span class="code-money">$1'+'</span>');
div.innerHTML = "You wrote: " + data;
}
.code-money { color:blue; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>

<p>Write something in the text field to trigger a function.</p>

<input type="text" id="myInput" oninput="myFunction()" contenteditable="true">

<div id="demo"></div>

</body>
</html>

关于javascript - 替换正则表达式后,我失去了对 &lt;input&gt; 的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754050/

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