Javascript Word计数器应用程序中的一个错误

Javascript Word计数器应用程序中的一个错误,javascript,jquery,Javascript,Jquery,我创建了一个应用程序 程序计算文本中的字数 但当我把第一个字符(任何字符)作为一个单词打印出来时,我有一个bug,我不明白为什么 以下是jQuery: counter = function () { var value = $('#text').val(); if (value.length == 0) { $('#wordCount').html(0); $('#totalChars').html(0);

我创建了一个应用程序

程序计算文本中的字数

但当我把第一个字符(任何字符)作为一个单词打印出来时,我有一个bug,我不明白为什么

以下是jQuery:

counter = function () {
        var value = $('#text').val();

        if (value.length == 0) {
            $('#wordCount').html(0);
            $('#totalChars').html(0);
            $('#charCount').html(0);
            $('#charCountNoSpace').html(0);
            return;
        }
        //var regex1 = /[^A-Za-z_]/gim;
        var regex1 = /[^a-z_]/gim;
        var regex2 = /\s+/gi;
        var textTrimmed = value.replace(regex1, '');
        var wordCount = textTrimmed.trim().replace(regex2, ' ').split(' ').length;

        var totalChars = value.length;
        var charCount = value.trim().length;
        var charCountNoSpace = value.replace(regex1, '').length;

        $('#textFiltered').html(textTrimmed.trim().replace(regex2, ' '));
        $('#textTrimmed').html(textTrimmed);
        $('#wordCount').html(wordCount);
        $('#totalChars').html(totalChars);
        $('#charCount').html(charCount);
        $('#charCountNoSpace').html(charCountNoSpace);
    };

    $(document).ready(function () {
        $('#count').click(counter);
        $('#text').change(counter);
        $('#text').keydown(counter);
        $('#text').keypress(counter);
        $('#text').keyup(counter);
        $('#text').blur(counter);
        $('#text').focus(counter);
    });
HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title>Copy &amp; Paste, Word &amp; Character counter</title>
</head>
<body>
    <div id="border">
        <textarea id='text'></textarea>
    </div>
    <button id="count">Count</button>
    <div id="result">
        
        Words: <span id="wordCount">0</span><br/>
        Total Characters(including trails): <span id="totalChars">0</span><br/>
        Characters (excluding trails): <span id="charCount">0</span><br/>
        Characters (excluding all spaces): <span id="charCountNoSpace">0</span>
    </div>
    </body>
    </html>

复印及;粘贴、Word&;字符计数器
计数
单词:0
总字符数(包括尾迹):0
字符(不包括尾迹):0
字符(不包括所有空格):0
知道如何修复这个bug吗


提前谢谢。

你的问题不是很清楚,但据我所知,我认为问题在下面一行

var wordCount = textTrimmed.trim().replace(regex2, ' ').split(' ').length;
换成这个

var wordCount = value.trim().split(' ').length;

如果问题是在完成之前不希望将任何字符计为单词,则可以在将其显示为count之前检查“”是否存在

在初始化wordCount变量后将这行代码添加到

if (textTrimmed.replace(regex2, ' ').indexOf(' ') < 0)
    wordCount = 0;
if(textTrimmed.replace(regex2')).indexOf(“”)<0
字数=0;
参考:


除此之外,您的小提琴不算,因为正则表达式不在引号中(请参阅我的评论)-虽然您的实际计数器没有此问题

无法准确理解您的问题,请重新编写好吗?我的感觉是,无论我输入多少单词,它都只显示一个单词。上面的问题是因为正则表达式不在引号中(应该是var regex1='/[^a-z]/gim')-但我认为你的问题是别的。