Javascript substr();按单词而不是字符限制
我想用文字而不是字符来限制substr。我在考虑正则表达式和空格,但不知道如何实现 场景:使用javascript/jQuery将一段文字限制在200字以内Javascript substr();按单词而不是字符限制,javascript,jquery,substr,Javascript,Jquery,Substr,我想用文字而不是字符来限制substr。我在考虑正则表达式和空格,但不知道如何实现 场景:使用javascript/jQuery将一段文字限制在200字以内 var $postBody = $postBody.substr(' ',200); 这是伟大的,但一分为二:)谢谢提前 如果您对不太准确的解决方案感到满意,您可以简单地对文本中的空格字符数进行连续计数,并假设它等于字数 否则,我将对字符串使用split(),并以“”作为分隔符,然后计算split返回的数组的大小。非常快而且脏 $("#
var $postBody = $postBody.substr(' ',200);
这是伟大的,但一分为二:)谢谢提前 如果您对不太准确的解决方案感到满意,您可以简单地对文本中的空格字符数进行连续计数,并假设它等于字数 否则,我将对字符串使用split(),并以“”作为分隔符,然后计算split返回的数组的大小。非常快而且脏
$("#textArea").val().split(/\s/).length
我想你也需要考虑标点符号和其他非单词、非空白字符。您需要200个单词,不包括空格和非字母字符
var word_count = 0;
var in_word = false;
for (var x=0; x < text.length; x++) {
if ( ... text[x] is a letter) {
if (!in_word) word_count++;
in_word = true;
} else {
in_word = false;
}
if (!in_word && word_count >= 200) ... cut the string at "x" position
}
var word\u count=0;
var in_word=false;
对于(var x=0;x=200)…在“x”位置剪切字符串
}
您还应该决定是否将数字视为一个单词,以及是否将单个字母视为一个单词。谢谢各位:)我现在有一个很好的方法来计算数字,但由于我的能力有限,我如何才能接受这些,并吐出一个限制在200字以内的文本?我能够获得空间的总体计数,但不确定如何使用它:)tnx。var$postLength=$postBody.split(/\s/).length您是说,给定一个可能有300个单词长的文本块,您希望得到包含前200个单词的文本块吗?split(“”)将返回单词数组,您只需在其中循环并将数组的前200个元素连接在一起。或者,如果您使用我的不太准确但速度快得多的初始建议,您可以在字符串中循环计算空格字符的数量,当您达到#200时,将子字符串从开始位置移到第200个空格的位置。感谢您的帮助:)下面是我提出的方法:var$I=0;var$maxWords=50;var$postBody=$(“#myDiv”).text().split(“”);而($i<$maxWords){$(“#results”).append($postBody[$i]+”);$i++}看起来它会起作用。确保给它一些好的测试用例,以确保它在一行中有多个空格的情况下按预期工作……我会注意数组上出现越界的可能性。如果postBody的长度小于$maxWords,那么“append($postBody[$i]+”)似乎会在数组达到post-body的长度时超出范围。这与jQuery无关。
var word_count = 0;
var in_word = false;
for (var x=0; x < text.length; x++) {
if ( ... text[x] is a letter) {
if (!in_word) word_count++;
in_word = true;
} else {
in_word = false;
}
if (!in_word && word_count >= 200) ... cut the string at "x" position
}