【发布时间】:2018-06-14 02:05:21
【问题描述】:
我正在尝试制作一个可以计算字符串输入中所有字符的函数,但不计算任何 cmets(// 或 /*)
到目前为止,它与 // 之后的行完美配合。我将我的字符串按每个新行拆分,如果它不包含//
,我只计算行字符这是目前为止的代码:
function findComments() {
var string = document.getElementById("input").value;
var splittedString = string.split("\n");
var count = 0;
for (var i = 0; i < splittedString.length; i++) {
while (countStars) {
if(splittedString[i].indexOf("*/") > -1) {
countStars = false;
}
continue;
}
if(splittedString[i].indexOf("/*") > -1) {
var countStars = true;
}
if(splittedString[i].indexOf("//") === -1) {
var chars = splittedString[i].split("");
for (var j = 0; j < chars.length; j++) {
count++;
}
}
}
console.log(count);
}
正如我所提到的,它应该继续循环,直到找到注释的结尾 ( */ )。到目前为止,这不起作用
非常感谢任何帮助! :)
【问题讨论】:
-
您可以忽略 // 之后的所有内容,但您需要为 /* */ 处理多行 - 您可以使用
<>sn-p 编辑器创建 minimal reproducible example 吗? -
是的,很难处理多行,因为我需要以某种方式继续循环,直到找到 */
-
在分割成行之前删除它们。 blog.ostermiller.org/find-comment
-
我想在没有正则表达式的情况下这样做,有没有办法在没有正则表达式的情况下删除它?
标签: javascript if-statement while-loop comments