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

Javascript 如何将句子分解为数组值?,javascript,regex,Javascript,Regex,我一直在编写一个简单的聊天机器人,除了句子分解之外,一切都完成了 我如何创建一个函数来分解一个执行以下操作的句子 把句子改成小写 过滤掉逗号、感叹号和句点 使句子的每个单词都成为一个数组值 返回数组 我仍在学习JavaScript,并想知道如何最好地做到这一点。一个简单的解决方案如下: var result = input.toLowerCase().match(/[\w'-]+/g); toLowerCase将字符串转换为小写,然后match将查找一个或多个单词字符(包括字母、数字和下划

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

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

  • 把句子改成小写
  • 过滤掉逗号、感叹号和句点
  • 使句子的每个单词都成为一个数组值
  • 返回数组

我仍在学习JavaScript,并想知道如何最好地做到这一点。

一个简单的解决方案如下:

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"]
考虑以下代码:

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

你自己试过什么?你有没有一些你努力的编码例子?句子中的“单词”是什么?如果你不知道单词是什么,你所能做的就是在空白处拆分,然后在线替换字符。