如何将句子分解为数组值?

时间:2013-12-12 19:13:27

标签: javascript regex

我一直在编写一个简单的聊天机器人,除了句子分解之外,一切都已完成。

如何创建一个函数来分解执行以下操作的句子?

  • 将句子转换为小写
  • 过滤掉逗号,感叹号和句号。
  • 使句子的每个单词都为数组值。
  • 返回阵列。

我还在学习JavaScript,并想知道如何做到这一点。

2 个答案:

答案 0 :(得分:4)

一个简单的解决方案是这样的:

var result = input.toLowerCase().match(/[\w'-]+/g);

toLowerCase将字符串转换为小写,然后match将找到一个或多个单词字符(包括字母,数字和下划线),撇号或连字符的任何序列。

例如:

var input = "I'm still learning JavaScript, and would like to know how to best do this.";
var result = input.toLowerCase().match(/[\w'-]+/g);
console.log(result); // ["i'm", "still", "learning", "javascript", "and", "would", "like", "to", "know", "how", "to", "best", "do", "this"]

答案 1 :(得分:1)

考虑以下代码:

s = 'Filter out commas, exclamation points, and periods.';
arr = s.toLowerCase().replace(/[,!.]/g, ' ').split(/ +/).filter(Boolean);
//=> ["filter", "out", "commas", "exclamation", "points", "and", "periods"]