将字符串拆分为单词数组以查找最长的
Split String into Array of Words to find Longest
我正在执行一项任务,即在任何给定的字符串中搜索最长的单词。我在想做到这一点的理想方法是将字符串拆分成一个由每个单词组成的数组,然后遍历该数组并将每个长度与最长的 return 进行比较。我坚持只是将字符串分成一组单词。我看到的问题在主题上的回答相似,似乎对这样一个简单的任务使用了很多复杂的方法。我正在寻求初学者级别的帮助,因为这是我第一次将正则表达式合并到我的代码中。
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");
我正在执行一项任务,即在任何给定的字符串中搜索最长的单词。我在想做到这一点的理想方法是将字符串拆分成一个由每个单词组成的数组,然后遍历该数组并将每个长度与最长的 return 进行比较。我坚持只是将字符串分成一组单词。我看到的问题在主题上的回答相似,似乎对这样一个简单的任务使用了很多复杂的方法。我正在寻求初学者级别的帮助,因为这是我第一次将正则表达式合并到我的代码中。
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");