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