我正在开发一个关于JavaScript的入门课程的项目,我真的需要一方面的帮助。
如何在游戏中的文本块中搜索字符串? 例如,我如何在下面的文本中搜索Messenger并将其用作值?
不是像下面那样有一整个文本块,它应该看起来更像这种格式:
AGAMEMNON: //dialogue
CLYTAEMNESTRA: //dialogue
AGAMEMNON //对话
到目前为止,我已尝试过.match属性和.indexOf属性,但不知道我的其他选项是什么。
请帮忙!
CLYTAEMNESTRA 不要只是为了蔑视我的安排。 阿伽门农 你应该知道我不会回到我所说的话。 CLYTAEMNESTRA 那么你必须害怕某些事情。 你已经向众神做出了一些承诺。 1100 阿伽门农 我说了最后一句话。我完全明白, 以及任何人,正是我正在做的事情。 CLYTAEMNESTRA 你觉得Priam会怎么做, 如果他有你的成功? 阿伽门农 那很清楚 - 他走过这些挂毯。 CLYTAEMNESTRA 那么为什么要为男人说的话感到羞耻呢? 阿伽门农 但是人们所说的可以拥有强大的力量。 CLYTAEMNESTRA 没错,但人们不羡慕的人 不值得他们羡慕。
答案 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 强>
不要只是为了蔑视我的安排。
<强>阿伽门农强>
你应该知道我不会回到我所说的话。