在javascript中拆分字符串,只留下a-z单词的正确模式是什么

在javascript中拆分字符串,只留下a-z单词的正确模式是什么,javascript,Javascript,我有下一个将字符串拆分为数组的代码 var chk = str.split(/[^a-z']+/i); 这个解决方案的问题是,如果字符串的结尾有一个句点,它将被替换为“,” 例如: 如果我有下一串:“嗨,我很高兴。” 上述解决方案的结果是:“嗨,大家好,我很高兴。”(注意最后的“,”。 我需要新的字符串是:“嗨,大家好,我很高兴” 如何实现它?检查是否为最后一个字符,然后首先将其删除 var str = "hi,all-I'm-glad. that you, can help,me. that

我有下一个将字符串拆分为数组的代码

var chk = str.split(/[^a-z']+/i);
这个解决方案的问题是,如果字符串的结尾有一个句点,它将被替换为“,”

例如: 如果我有下一串:“嗨,我很高兴。” 上述解决方案的结果是:“嗨,大家好,我很高兴。”(注意最后的“,”。 我需要新的字符串是:“嗨,大家好,我很高兴”


如何实现它?

检查
是否为最后一个字符,然后首先将其删除

var str = "hi,all-I'm-glad. that you, can help,me. that-doesn't make any-sense, I know.";
if(str.charAt( str.length-1 ) == ".") {
   str = str.substring(0,str.length-1);
}
var chk = str.split(/[^a-z']+/i);
console.log(chk);

您可以检查字符串数组的最后一个元素是否返回空字符串并删除该元素

if (chk[chk.length-1] == "")
{
  chk.pop();
}

如果数组的最后一个值为空,则使用pop删除该值。

您可以使用纯正则表达式幂:

var chk = str.match(/[a-z']+/gi);

console.log(chk);
"hi,all-I'm-glad. that you, can help,me. that-doesn't make any-sense, I know.".replace(/[\-\.\s]/g, ',').replace(/,{2,}/g, ',').replace(/,$/,'')

如果你在上一篇文章中确实尝试过一些替代解决方案,你就会找到答案。@JoelLundberg,我在上一篇文章中研究过其他解决方案,但没有一个解决了我的问题
"hi,all-I'm-glad. that you, can help,me. that-doesn't make any-sense, I know.".replace(/[\-\.\s]/g, ',').replace(/,{2,}/g, ',').replace(/,$/,'')