我对此做了一些搜索。我找到了大量的脚本,可以统计字符甚至单词,但找不到一个可以删除超过字数限制的单词的脚本。
这是到目前为止我的脚本...:
var maxWords = 10;
function countWordsLeft(field) {
totalWords = field.value.split(' ');
if (totalWords.length > maxWords)
field.value = field.value.substring(0, maxWords);
else
document.getElementById('description_count').innerHTML = maxWords - totalWords.length;
}
我从一个字符统计脚本中复制了下面这行代码,但显然这行不通,因为我是在计算单词
if (totalWords.length > maxWords)
field.value = field.value.substring(0, maxWords);
如何让脚本删除任何超出限制的额外单词?我需要这个尤其是如果他们在描述中粘贴的话。它需要计算单词数,然后删除任何超过限制的单词。
感谢您的帮助!
发布于 2009-09-23 17:07:37
field.value = field.value.split(' ').splice(0, maxWords).join(' ');
更新
我注意到,这也将一行中的n
空格算作n-1
单词,其修复方法如下:
var a = field.value.split(' ');
var words=0, i=0;
for(; (i<a.length) && (words<maxWords); ++i)
if(a[i].length) ++words;
field.value = a.splice(0,i).join(' ');
发布于 2009-09-24 08:08:19
我可能会用到这个:
var maxWords = 10;
function limitLengthInWords(field) {
var value = field.value,
wordCount = value.split(/\S+/).length - 1,
re = new RegExp("^\\s*\\S+(?:\\s+\\S+){0,"+(maxWords-1)+"}");
if (wordCount >= maxWords) {
field.value = value.match(re);
}
document.getElementById('description_count').innerHTML = maxWords - wordCount;
}
这将保留单词开头和单词之间的空格。
发布于 2011-07-28 06:42:31
jQuery简单可计数插件
为任何文本输入或文本区提供字符或单词计数器(和限制器)。在键入或粘贴文本时起作用。
@ 0.4.2版
@主页http://github.com/aaronrussell/jquery-simply-countable/
@作者亚伦·罗素http://www.aaronrussell.co.uk
版权所有(c) 2009-2010 Aaron Russell
麻省理工学院http://www.opensource.org/licenses/mit-license.php下的双许可
https://stackoverflow.com/questions/1469304
复制相似问题