找出句子中最长的单词——Javascript
Find out the longest word from a sentence - Javascript
有办法找出Javascript中最长的单词吗?它也应该忽略标点符号!
我理解其中的逻辑,但代码叹息
以下是我们所做的-
-
计算在一起的字母数字字符的数量,不以空格或任何符号分隔。
-
获取它们的长度。
- 找出所有长度中最大的
- 返回长度最大的单词
希望我能说清楚。。。
拆分字符串,在各个部分上循环,并跟踪最长的部分。
类似这样的东西:
var parts = sentence.split();
var longestIndex = -1;
var longestWord = 0;
for(var i=0; i < parts.length; i++){
if(parts[i].length > longestWord){
longestWord = parts[i].length;
longestIndex = i;
}
}
alert("longest word is " + parts[longestIndex] + ": " + longestWord + " characters");
如果需要拆分非字母字符和空格,则需要使用正则表达式。您可以更改此行:
var parts = sentence.split();
为此(感谢Kooilnc的regex):
var parts = sentence.match(/'w[a-z]{0,}/gi);
工作jsfiddle
var longest_word = arr.reduce(function (x, y) { return x.length > y.length ? x : y; });
给你。
使用它:
var arr = [ 'lol', 'loll', 'lollll', 'lo', 'l' ];
var longest_word = arr.reduce(function (x, y) { return x.length > y.length ? x : y; });
所以,把你的句子变成一个数组,那么变量longest_word将是该数组中最长的单词。
试试这个:
sentence_array = sentence.split(' ');
var longest = sentence_array.sort(function (a, b) { return b.length - a.length; })[0];
您可以使用match
方法将字符串拆分为仅包含单词的数组(没有分隔符、数字等),并按每个元素的长度降序排序,之后元素0是最长的单词。
它可能是String.prototype
扩展
String.prototype.longestWord = function(){
return (this.match(/'w[a-z]{0,}/gi) || [''])
.sort(function(a,b){return b.length-a.length;})[0];
}
//usage
'We saw it ...! A lazy cat walking - or did we?'.longestWord(); //=> walking
'------------'.longestWord(); //=> ''
'---aa--b----'.longestWord(); //=> 'aa'
与函数相同,使用Array.reduce
function longestWord(str){
return (str.match(/'w[a-z]{0,}/gi) || [''])
.reduce( function(a,b){return a.length>b.length ? a : b;} );
}
Fiddle here
这就是我试图解决问题的方式:
function LongestWord(sen) {
var wordArray = sen.match(/'w+/gi);
var longest = 0;
var word = undefined;
for(var i = 0; i < wordArray.length; i++){
if(wordArray[i].length > longest){
word = wordArray[i];
longest = word.length;
}
}
return word;
}
相关文章:
- 如何在Javascript中从字符串中提取某些单词
- 在javascript中查找单词
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- Javascript-从随机的单词数组中创建段落
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Regex或javascript每X个连续单词中有一个单词
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 我怎么能用css或(angular)javascript把句子分成两行,只在特定单词后面
- 找出句子中最长的单词——Javascript
- Javascript:当这个单词被点击5次时,下面会显示另一个单词
- 查找并替换多个单词 JavaScript
- 删除连续重复的单词javascript
- 删除带有单词javascript的大括号之间的空格
- 在最后一个单词 Javascript 之前附加字符串
- 添加“-"每个单词-javascript
- 检查字符串是否只有特定的单词javascript
- 提取包含特定单词javascript的文本块中的特定行
- 查找数组中出现次数为偶数的单词 - Javascript
- 提示5个单词,然后显示最长的单词javascript