Javascript 试图返回最长的单词,但删除了某个字符

Javascript 试图返回最长的单词,但删除了某个字符,javascript,Javascript,我想要的结果是句子,但它返回句子。。如何指定要删除“.” 函数最长字(字符串){ var str=string.split(“”); var=0; var-word=null; 变量sep=',?!'; 对于(变量i=0;ia.length-b.length)//按长度排序 .pop();//回程最长 log(longestWord('创建一个函数以返回句子中最长的单词')调整现有解决方案 您可以使用replace by regex排除sep 此外,if(longest

我想要的结果是
句子
,但它返回
句子。
。如何指定要删除“.”

函数最长字(字符串){
var str=string.split(“”);
var=0;
var-word=null;
变量sep=',?!';
对于(变量i=0;i尝试使用。替换

例如:

var str = "sentence."

str = str.replace(".", "")

相同。替换逻辑可用于循环输入字符串,并可能添加其他字符,如/,;等等。

正则表达式会工作得更好

const nonAlpha=/[^\w\s]| /ug//非字母和下划线
const longestWord=string=>string
.replace(nonAlpha,“”)。split(“”//删除非字母
.sort((a,b)=>a.length-b.length)//按长度排序
.pop();//回程最长

log(longestWord('创建一个函数以返回句子中最长的单词')调整现有解决方案

您可以使用replace by regex排除
sep


此外,
if(longest
也应该更改为
您的include条件没有按预期工作

函数最长字(字符串){
var str=string.split(“”);
var=0;
var-word=null;
变量sep=',?!';
对于(变量i=0;isep.split(“”).includes(v))){
str[i]=str[i]。子字符串(0,str[i]。长度-1);
}

if(longest
sep.includes(str[i])
检查字符串
,?!”
中是否有完整的单词
str[i]
。不使用
split
,只需使用
var str=string.match(/\b(\w+)\b/g)
直接获取单词。这将删除逗号、圆点等。然后您根本不需要
sep
逻辑:在您的示例中,您有两个符合您的标准的单词-它们是长度相同的最长单词-8个字符。函数和句子。预期结果是什么?句子。实际上不是一个单词。它是一个word后跟标点符号。在您的示例中,您有
单词
;应如何考虑?应将其归类为4、5或7个字符的单词?