字数文本框javascript/php
我正在尝试在textbox中实现一个单词计数器。我正在使用以下链接:字数文本框javascript/php,javascript,php,jquery,Javascript,Php,Jquery,我正在尝试在textbox中实现一个单词计数器。我正在使用以下链接: var-cnt; 函数wordcount(count){ var words=count.split(/\s/); cnt=单词长度; var ele=document.getElementById('w_count'); 元素值=碳纳米管; } 文件。填写(“”); 文字计数器工作正常。但我的情况如下: 对于单词“最合适的匹配”,如果用户键入缩写为“MSM”,则MSM也应计为3个单词 同样,如果有“DAV”这样的学院
var-cnt;
函数wordcount(count){
var words=count.split(/\s/);
cnt=单词长度;
var ele=document.getElementById('w_count');
元素值=碳纳米管;
}
文件。填写(“”);
文字计数器工作正常。但我的情况如下:
请建议 试试这个。我在手机上,所以我不能轻易做出一个例子 这将把所有大写的单词都算作首字母缩略词
<textarea name="myMessage" onkeyup="wordcount(this.value)"></textarea>
<input type=text id=w_count size=4 readonly>
<script type=""text/javascript"">
function wordcount(message) {
var words = message.split(/\s/);
var cnt = words.length;
for (var i=0;i<cnt;i++) {
if (words[i].length>1 && words[i].match(/^[A-Z]*$/)) cnt += words[i].length-1)
}
var ele = document.getElementById('w_count');
ele.value = cnt;
}
</script>
函数wordcount(消息){
var words=message.split(/\s/);
var cnt=单词长度;
对于(var i=0;i1&&words[i]。匹配(/^[A-Z]*$/)cnt+=words[i]。长度-1)
}
var ele=document.getElementById('w_count');
元素值=碳纳米管;
}
我做了一个简单的函数:
var regex = [/DAV/g, /MAC/g];
function countWords() {
var count = [];
regex.forEach(function(reg) {
var m = text.match(reg);
if (m) {
count = count.concat(m);
}
});
// the number of known acronym wrote in the text
var acronyms = count.length;
// how much words generated from an acronym (e.g. DAV === 3 words; AB === 2 words and so on)
var wordsFromAcronyms = count.join().replace(/,/g,'').length;
// how many words wrote (this is equal to your code)
var rawWords = text.match(/\S+/g).length;
// compute the real number
return rawWords - acronyms + wordsFromAcronyms;
}
它计算编写的首字母缩略词的数量(已知首字母缩略词列表存储在regex
数组中),然后计算首字母缩略词(wordsFromAcronym
)生成的单词数量,然后从总单词(rawWords
)中减去首字母缩略词(acronyms
)的数量然后添加单词fromacronym
这是一个。你需要一本允许使用的首字母缩略词词典,然后在每个“单词”上循环查找首字母缩略词:)请举个例子??这将非常有帮助……如果您知道用户将使用的所有缩略语/速记,您可以将它们作为键、值对存储在javascript对象中。(关键字:首字母缩略词,值:word_count)(例如:{“MSM”:3})然后在wordcount函数中,您可以迭代“words”数组并检查它是否在javascript对象中,如果是,则将其计为其值..是的。。。那我就这样做……:)为什么要投票。。。魁北克有什么不对?人们喜欢对这个社区投否决票@Gags:sss他们太挑剔了..是的。。。这样我必须找出所有的首字母缩写:)是的,但这是唯一有效的解决方案,因为你不能确定用户的大小写。如果一个用户用大写呼喊,你很快就会达到最大字数…是的。。。我喜欢这种方法,但首先让我找出缩写词
var regex = [/DAV/g, /MAC/g];
function countWords() {
var count = [];
regex.forEach(function(reg) {
var m = text.match(reg);
if (m) {
count = count.concat(m);
}
});
// the number of known acronym wrote in the text
var acronyms = count.length;
// how much words generated from an acronym (e.g. DAV === 3 words; AB === 2 words and so on)
var wordsFromAcronyms = count.join().replace(/,/g,'').length;
// how many words wrote (this is equal to your code)
var rawWords = text.match(/\S+/g).length;
// compute the real number
return rawWords - acronyms + wordsFromAcronyms;
}