<textarea id="check" cols="50" rows="20"></textarea>
<script>
var text = document.getElementById("check").value;
var lengthA = text;
for (var i = 0; i < lengthA.length; i++) {
var space = " ";
if (lengthA[i] === space) {
var next = lengthA[i] + 1;
if (next === space) {
lengthA.replace(lengthA[i], "");
}
}
}
var length3 = lengthA.length - length2;
var words = length3 + 1;
</script>
好吧,我有一个问题!我试图通过法律使一个词反驳每个空间等于一个词(1:1)。我不确定它为什么不起作用,在我看来这对我来说是有道理的。我尝试了几种替代方案,并试图修复这个块。提前感谢任何回答的人,即使它不起作用! :)
编辑:正则表达式完成了这一操作并替换了错误使用的for loop
和if语句。感谢
答案 0 :(得分:1)
如下所示 -
var text = document.getElementById("check").value.replace (/ +/g, " ");
不确定,为什么你需要一个for循环开始。
/ + /将超过1个空格 g将在整个文本中进行所有更改
答案 1 :(得分:1)
要删除重复的空格,请使用以下代码
lengthA.replace(lengthA[i], "");
应该是
lengthA = lengthA.substring(0, i) + lengthA.substring(i + 1);
// i should not increase
i--;
continue;
你误解了替换的用法。
答案 2 :(得分:1)
使用JavaScript的str.replace()
执行此操作。这不仅会删除空格,还会删除制表符,换行符等。
<强>用法:强>
var string = string.replace(/\s\s+/g, ' ');
因此请更改以下代码:
var lengthA = text;
for (var i = 0; i < lengthA.length; i++) {
var space = " ";
if (lengthA[i] === space) {
var next = lengthA[i] + 1;
if (next === space) {
lengthA.replace(lengthA[i], "");
}
}
}
对此:
var lengthA = text.replace(/\s\s+/g, ' ');
参考此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace