Javascript 如何将匹配的单词放入数组?

Javascript 如何将匹配的单词放入数组?,javascript,Javascript,这是这个问题的后续问题 我在计算一个正则表达式中的单词。这只是计算单词,我需要做的不仅仅是计算单词,还有一个单词数组,我可以用array.length来表示。我需要的是一个实际的单词列表,而不仅仅是它们的数量 我的想法是将正则表达式检查器放入某个for循环中 这是我的密码: <body> <textarea rows="14" cols="50" id="text"></textarea> <br/> <br/>

这是这个问题的后续问题

我在计算一个
正则表达式中的单词。这只是计算单词,我需要做的不仅仅是计算单词,还有一个单词数组,我可以用
array.length
来表示。我需要的是一个实际的单词列表,而不仅仅是它们的数量

我的想法是将正则表达式检查器放入某个for循环中

这是我的密码:

<body>
    <textarea rows="14" cols="50" id="text"></textarea>
    <br/>
    <br/>
    <br/>
    <br/>
    <button onclick="show()">Analyze</button>
    <div id="results"></div>
    <script>
        function show() {
            var words;
            /// GET WORDS
            var s = document.getElementById("text").value;
            var word = /[a-zA-Z\d'’-]+/g;
            var words = s.match(word).length;
            document.getElementById("results").innerHTML = words;
        }
    </script>
</body>





分析 函数show(){ 变异词; ///获得话语权 var s=document.getElementById(“文本”).value; var-word=/[a-zA-Z\d'-]+/g; var words=s.match(word).length; document.getElementById(“结果”).innerHTML=words; }
您所要做的就是更改这一行:
var words=s.match(word).length
var单词=s.match(单词)

现在你有了单词作为单词数组。。。其思想是
s.match(word)
本身就是一个数组。。。添加
.length
仅返回此数组的长度。

完整示例:

<body>

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

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

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

<div id="results"></div>
<script> 


  function show() {
    var words,
      s = document.getElementById("text").value,
      word = /[a-zA-Z\d'’-]+/g,
      // If no matches, returns null, fallback to empty array
      words = s.match(word)||[],
      wordCount = words.length; 
    document.getElementById("results").innerHTML = words; 
  }


</script>

</body>





分析 函数show(){ 换言之, s=document.getElementById(“文本”).value, word=/[a-zA-Z\d'-]+/g, //如果没有匹配项,则返回null,回退到空数组 单词=s.match(单词)| |[], wordCount=words.length; document.getElementById(“结果”).innerHTML=words; }
您的正则表达式不正确请尝试以下操作

 var words = "this is a word list";
 var wordm = /(\w+)/g;
 var beer = words.match(wordm); 
 console.log (beer); // prints the array
 console.log (beer.length); // prints 5 

“\w+”匹配任何单词,“()”对它们进行分组,然后g重复它。然后将它们放入一个数组。

match
已返回一个数组…请参见下面的答案,下面的正则表达式已修复混乱。我删除了不区分大小写的开关,因为在“\w”的情况下不需要它。我确实测试了这段代码,结果是指定的。