Javascript 我需要一种更好的方法来计算文本区域中的单词?

Javascript 我需要一种更好的方法来计算文本区域中的单词?,javascript,Javascript,我试图计算文本区域中的单词,基本上就是string.split(“”) 这种方法是完全没有希望的。我甚至不知道它在做些什么。例如,我可以没有文本在那里,它给了我一个正数 我不确定是string.split(“”)、方法还是带有的东西,或者两者不兼容 这是我的密码: <body> <textarea rows="14" cols="50" id="text"> </textarea> <br/> <

我试图计算文本区域中的单词,基本上就是
string.split(“”)

这种方法是完全没有希望的。我甚至不知道它在做些什么。例如,我可以没有文本在那里,它给了我一个正数

我不确定是
string.split(“”)
、方法还是带有
的东西,或者两者不兼容

这是我的密码:

    <body>

    <textarea rows="14" cols="50" id="text">

    </textarea>

    <br/>
    <br/>
    <br/>
    <br/>

    <button onclick="show()">Analyze</button>

    <div id="results"> 

    </div>


<script> 

    var a1 = [];     
    var words = 0; 

    function show() 
    {

        // GET WORDS 
        var s = document.getElementById("text").value; 
        a1 = s.split(' '); 
        words = a1.length; 


        document.getElementById("results").innerHTML = words;

       }

    </script>

    </body>





分析 var a1=[]; 变量字=0; 函数show() { //获得话语权 var s=document.getElementById(“文本”).value; a1=s.分裂(“”); 字数=a1.5长度; document.getElementById(“结果”).innerHTML=words; }
将所有不是数字、字母、下划线或撇号的内容转换为空格;然后,将空格之间的事物流计算为“单词”


将不是数字、字母、下划线或撇号的所有内容都转换为空格;然后,将空格之间的事物流计算为“单词”


你那里的新行仍然很重要!空格之间的空格也会变成空字符串

<>我会使用正则表达式,你可以很容易地根据你所考虑的单词来改变:

var WORD = /[a-zA-Z\d'’-]+/g;
⋮
var words = s.match(WORD).length;

你那里的新行仍然很重要!空格之间的空格也会变成空字符串

<>我会使用正则表达式,你可以很容易地根据你所考虑的单词来改变:

var WORD = /[a-zA-Z\d'’-]+/g;
⋮
var words = s.match(WORD).length;

当您遇到问题时,列出输入列表和相应的输出列表,然后找出输出列表应该是什么,并比较差异。如果你仍然不知道哪里出了问题,告诉我们这些东西。我不太懂javascript,但我认为使用split(“”)比split(“”)更好。。。也许不同?在空格上拆分不会考虑行尾字符。也许先替换它们,然后在空格上拆分。@markg这两个在JavaScript中是相同的。遇到问题时,请列出输入列表和相应的输出列表,然后找出输出列表应该是什么,并比较差异。如果你仍然不知道哪里出了问题,告诉我们这些东西。我不太懂javascript,但我认为使用split(“”)比split(“”)更好。。。也许不同?在空格上拆分不会考虑行尾字符。也许先替换它们,然后在空间上拆分。@markg这两个在JavaScript.com中是相同的。我想我真的需要学习如何使用正则表达式。太棒了。我想我真的需要学习如何使用正则表达式。