JS:在文本区域搜索特定字符串

JS: search for specific string in textarea

本文关键字:字符串 搜索 区域 文本 JS      更新时间:2023-12-05

我正在为JavaScript入门课程做一个项目,我真的需要在一个方面得到帮助。

我该如何在剧中的文本块中搜索字符串?例如,我如何在下面的文本中搜索Messenger并将其用作值?

与其像下面那样有一整块文本,它应该看起来更像这样的格式:

AGAMEMNON: //dialogue
CLYTAEMNESTRA: //dialogue
AGAMENON//对话

到目前为止,我已经尝试了.match属性和.indexOf属性,但不知道我的其他选项是什么。

请帮忙!

CLYTAEMNESTRA不要这么说只是为了藐视我的安排。阿伽门农你应该知道我不会收回我说过的话。CLYTAEMNESTRA那么,你一定害怕什么,才会这样做。你向上帝许下了一些诺言。1100阿伽门农我已经说了最后一句话。我完全理解,和任何男人一样,我正在做什么。CLYTAEMNESTRA你认为普里亚姆会做什么,如果他有你的成功?阿伽门农很清楚--他会穿过这些挂毯的。CLYTAEMNESTRA那么,为什么要为男人的话感到羞耻呢?阿伽门农但是人们所说的话有很大的力量。CLYTAEMNESTRA没错,但是人们并不嫉妒的人不值得他们嫉妒。

1)获取文本区域的文本内容

var txt = document.querySelector('textarea').textContent;

2) 定义正则表达式以将文本区域拆分为组成部分

var regex = /[A-Z]+ ['w’, ]+'./g

3) 返回匹配的数组

var roles = txt.match(regex);

4) map上的数组,并返回一个名称和描述的HTML数组

var html = roles.map(function (role) {
  role = role.replace(/([A-Z]+) /, '$1:').split(':');
  return [
    '<div class="name">',
    role[0],
    '</div>',
    '<div class="desc">',
    role[1],
    '</div>'].join('');
});

5) 将HTML添加到DOM

document.getElementById('out').innerHTML = html.join('');

输出

CLYTAEMNESTRA

不要这么说只是为了藐视我的安排。

AGAMENON

你应该知道我不会收回我说过的话。

演示