首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS:在textarea中搜索特定字符串

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

Stack Overflow用户
提问于 2016-04-04 13:38:21
回答 1查看 513关注 0票数 0

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

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

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

AGAMEMNON: //dialogue

CLYTAEMNESTRA: //dialogue

阿伽门农//对话

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

请帮帮我!

克莱塔内斯特拉别这么说只是为了无视我的安排。阿伽门农,你应该知道,我不会重蹈覆辙。那么,克莱塔内斯特拉,你必须害怕什么,才能这样做。你已经向众神许下了诺言。1100阿伽门农我说了我的最后一句话。我和任何男人一样,都完全明白我在做什么。克莱塔内斯特拉,如果他有你的成功,你认为普里阿姆会怎么做?阿伽门农,很明显,他会穿过这些挂毯。克莱塔涅斯特拉,那为什么要为人们说的话感到羞愧呢?阿伽门农但是人们所说的都有很大的力量。CLYTAEMNESTRA是真的,但是人们不嫉妒的人是不值得他们嫉妒的。

EN

回答 1

Stack Overflow用户

发布于 2016-04-04 14:13:25

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

代码语言:javascript
复制
var txt = document.querySelector('textarea').textContent;

2)定义正则表达式,将文本的区域划分为组件部分。

代码语言:javascript
复制
var regex = /[A-Z]+ [\w’, ]+\./g

3)返回一个匹配数组

代码语言:javascript
复制
var roles = txt.match(regex);

4)对数组进行map,并返回名称和描述的HTML数组。

代码语言:javascript
复制
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中

代码语言:javascript
复制
document.getElementById('out').innerHTML = html.join('');

输出

CLYTAEMNESTRA 别这么说只是为了无视我的安排。 AGAMEMNON 你应该知道我不会违背我说过的话。

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36404287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档