JS:在textarea中搜索特定的字符串

时间:2016-04-04 13:38:21

标签: javascript string textarea project

我正在开发一个关于JavaScript的入门课程的项目,我真的需要一方面的帮助。

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

不是像下面那样有一整个文本块,它应该看起来更像这种格式:

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

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

请帮忙!

  

CLYTAEMNESTRA         不要只是为了蔑视我的安排。   阿伽门农         你应该知道我不会回到我所说的话。   CLYTAEMNESTRA         那么你必须害怕某些事情。         你已经向众神做出了一些承诺。 1100   阿伽门农         我说了最后一句话。我完全明白,         以及任何人,正是我正在做的事情。   CLYTAEMNESTRA         你觉得Priam会怎么做,         如果他有你的成功?   阿伽门农         那很清楚 -         他走过这些挂毯。   CLYTAEMNESTRA         那么为什么要为男人说的话感到羞耻呢?   阿伽门农         但是人们所说的可以拥有强大的力量。   CLYTAEMNESTRA         没错,但人们不羡慕的人         不值得他们羡慕。

1 个答案:

答案 0 :(得分:1)

1)获取textarea的文本内容

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

     

不要只是为了蔑视我的安排。

     

<强>阿伽门农

     

你应该知道我不会回到我所说的话。

DEMO