Javascript 检测两个或多个连续的空白

Javascript 检测两个或多个连续的空白,javascript,if-statement,Javascript,If Statement,我正在学习JavaScript,需要您的帮助。下面的代码主动显示正在文本框中键入的用户的字数。我的代码检测到一个空格并将其添加到字数中 我试图改进单词计数器,并编写一个if/then语句来检测一行中的两个或多个空格,并且不增加单词计数。我的计划是,如果检测到一行中有两个空格,则减量为1,实际上使多余的空格无效 这是我的密码: <!DOCTYPE HTML> <html> <head> </head> <body> <p>

我正在学习JavaScript,需要您的帮助。下面的代码主动显示正在文本框中键入的用户的字数。我的代码检测到一个空格并将其添加到字数中

我试图改进单词计数器,并编写一个if/then语句来检测一行中的两个或多个空格,并且不增加单词计数。我的计划是,如果检测到一行中有两个空格,则减量为1,实际上使多余的空格无效

这是我的密码:

<!DOCTYPE HTML>
<html>
<head>
</head>

<body>

<p><textarea id="myWordsToCount" rows="5" cols="60"></textarea><br></p>

The wordcount is: <span id="wordcount"></span><br>

<script type="text/javascript">

// JavaScript Word Count

var textBoxElement = document.getElementById("myWordsToCount")   // no .value wanted sice i am detecting at the element level

textBoxElement.onkeyup = function() {

textBoxElementValues = document.getElementById("myWordsToCount").value;

var stringSplt = textBoxElementValues.split(" ");
var doublequote = textBoxElementValues.split("  ");


if ( doublequote ) {
    stringSplt.length--;
 }

document.getElementById("wordcount").innerHTML = stringSplt.length;


}


</script>

</body>
</html>


字数为:
//JavaScript字数 var textBoxElement=document.getElementById(“myWordsToCount”)//我在元素级别检测到的不需要任何值 textBoxElement.onkeyup=函数(){ textBoxElementValues=document.getElementById(“myWordsToCount”).value; var stringSplt=textBoxElementValues.split(“”); var doublequote=textBoxElementValues.split(“”); 如果(双引号){ stringSplt.length--; } document.getElementById(“wordcount”).innerHTML=stringSplt.length; }
我会使用不同的方法,使用正则表达式匹配所有单词,而不是计算空格

例如

下面是另一个使用正则表达式的
split

var text = ' test sdftdf sdf',
    wordCount = text.split(/\s+/).filter(function (w) { return !!w; }).length;

console.log(wordCount); //3
您也可以在不使用正则表达式的情况下实现一个:

function wordCount(text) {
    var i = 0, 
        len = (text = text + '').length,
        parsingWord = false,
        wordCount = 0;

    for (; i < len; i++) switch (text[i]) {
        case '\t':
        case ' ': parsingWord = false; break;
        default: !parsingWord && (parsingWord = true) && ++wordCount;
    }

    return wordCount;
}
函数字数(文本){
var i=0,
len=(text=text+“”)。长度,
parsingWord=false,
字数=0;
对于(;i
简短的回答是使用正则表达式。@user3390793我很高兴能帮上忙!别忘了接受答案;)
function wordCount(text) {
    var i = 0, 
        len = (text = text + '').length,
        parsingWord = false,
        wordCount = 0;

    for (; i < len; i++) switch (text[i]) {
        case '\t':
        case ' ': parsingWord = false; break;
        default: !parsingWord && (parsingWord = true) && ++wordCount;
    }

    return wordCount;
}