提问人:AndryAndryAndry 提问时间:11/17/2023 更新时间:11/17/2023 访问量:52
将大括号之间的文本替换为此文本 [关闭]
Replace text between curly brackets to div with this text [closed]
问:
我有输入和文本区域。我使用 vue 将 textarea 的文本设置为输入的内容。我希望能够写一些东西,比如改变文本的颜色。现在,我真的不需要任何颜色,我只想知道如何在 {#} 和 {/#} 之间查找文本并将其放入改变颜色的 div。{#123123}text{/#}
我什至不知道从哪里开始,可能我应该使用一些函数来查找,然后在它之后检查文本,然后找到,但我真的不确定。{
}
答:
0赞
Titus
11/17/2023
#1
您可以使用正则表达式来做到这一点,下面是一个示例:
const input = document.querySelector('input');
const textArea = document.querySelector('textArea');
input.oninput = process;
function process() {
const match = input.value.match(/{(#[^}]+)}([^{]+){\/#}/);
if (match) {
const [, color, text] = match;
textArea.value = text;
textArea.style.color = color;
}
}
process();
<input type="text" value="{#a83232}text{/#}" />
</br>
</br>
<textarea></textarea>
评论
0赞
AndryAndryAndry
11/17/2023
你好。非常感谢您的回答:3 我需要知道的是如何获得乘以颜色/文本。喜欢。{#123123}text{/#} blablabla {#abcabc}even more text{/#}
0赞
AndryAndryAndry
11/17/2023
看来我需要!非常感谢您的回答!matchAll()
0赞
Titus
11/17/2023
@AndryAndryAndry 我很高兴我能帮上忙。祝你好运。
评论
'{#123123}text{/#}'.match(/{#[^}]+}(.*){\/#}/)[1]
match
null
[1]
null
'{#123123}text{/#}'.match(/{#[^}]+}(.*){\/#}/)[1]
{#123123}text{/#}
{# }
const [,color, text] = '{#123123}text{/#}'.match(/{(#[^}]+)}([^{]+){\/#}/);
color
[,color.....
color
text