Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字数文本框javascript/php_Javascript_Php_Jquery - Fatal编程技术网

字数文本框javascript/php

字数文本框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”这样的学院

我正在尝试在textbox中实现一个单词计数器。我正在使用以下链接:



var-cnt;
函数wordcount(count){
var words=count.split(/\s/);
cnt=单词长度;
var ele=document.getElementById('w_count');
元素值=碳纳米管;
}
文件。填写(“”);
文字计数器工作正常。但我的情况如下:

  • 对于单词“最合适的匹配”,如果用户键入缩写为“MSM”,则MSM也应计为3个单词
  • 同样,如果有“DAV”这样的学院名称,则也应计为3个单词

  • 请建议

    试试这个。我在手机上,所以我不能轻易做出一个例子 这将把所有大写的单词都算作首字母缩略词

    <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;
    }