[英]Split String into Array of Words to find Longest
我正在执行一项任务,以搜索最长字符串的任何给定字符串。 我在想这样做的理想方法是将字符串拆分成由每个单词组成的数组,然后遍历该数组并比较每个长度以返回最长的字符串。 我坚持只将字符串分成单词数组。 我所看到的在主题上类似回答的问题似乎在这种简单任务中使用了很多到复杂的方法。 我正在初学者级别寻求帮助,因为这是我第一次将正则表达式合并到我的代码中。
function findLongestWord(str) {
str = str.toLowerCase().split("/\w+");
return str;
}
findLongestWord('The quick brown fox jumped over the lazy dog');
您的正则表达式结构不良。 即使它是固定的.split(/\\w+/)
,对单词进行拆分也会创建一个数组,其结果与您要查找的结果相反 。
您应该使用.match
来收集单词。
function findLongestWord(str) { var match = ''; str.match(/\\w+/gi).forEach(function (w) { if (w.length > match.length) { match = w; } }); return match; } var a = findLongestWord('The quick brown fox jumped over the lazy dog'); console.log(a);
还是有点天真,因为单词可以在中间加上连字符,并且在前面,中间和结尾都带有撇号。
function findLongest(str){
var array = str.split(" ");
var longest = "";
for (var i=0; i<array.length; i++){
if (array[i].length > longest.length){
longest = array[i];
}
}
console.log(longest);
}
findLongest("The quick brown fox jumped over the lazy dog");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.