javascript - 来自输入的字符串和运行时的字符串不相等?

标签 javascript string

所以我正在尝试阅读 <textarea>输入,将其分成单独的单词,然后检查每个单词是否等于关键字列表中的单词。

我已经完成了代码,当我测试时,它没有工作。当我调试它时,我看到当它比较来自 <textarea> 的字符串时和一个看起来相同的常量字符串,它认为它们不相等。

我试图从 <textarea> 中获取字符串(一模一样,复制粘贴)和常量字符串静态比较,结果为真。

如果您知道可能是什么问题,我将很高兴听到。 谢谢。

代码:

function run() {
    debugger;

    code = document.getElementById("codeArea").value;
    cleanDots();
    words = code.split(" ");
    compile();
}

function compile() {    
    for (i = 0; i < words.length; i++) {
        var w = words[i];
        if (w == "test") 
            alert("test - true");
    }
}

function cleanDots() {
    for (var j = 0; j < code.length; j++) {
        if (code.charAt(j) == ".") {
            var p1 = code.substring(0, j);
            var p2 = code.substring(j + 1, code.length);

            code = p1 + " " + p2;
        }
    }
}

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>דוס סקריפט סביבת פיתוח</title>
    <style type="text/css">
        body{
            padding: 0;
            margin: 0;      
        }
        textarea{
            width: 95%;
            padding: 10px;
            height: 700px;
            text-align: right;
            float: right;       
        }
        button{
            width: 95%;
            padding: 10px;
            text-align: center;
            float: right;
            background-color: green;
        }
    </style>
</head>
<body>
    <textarea id="codeArea">

    </textarea>
    <button id="submit" onclick="run()">הרץ</button>

    <script src="compiler.js"></script>
    <script src="methods.js"></script>
</body>
</html>

最佳答案

首先,您在 cleanDots 函数中实际执行的操作是实现 JavaScript replace() 方法,该函数应如下所示:

function cleanDots() {
    code = code.replace(".", " ");
}

function run() {
  debugger;

  code = document.getElementById("codeArea").value;
  cleanDots();
  words = code.split(" ");
  compile();
}

function compile() {
  for (i = 0; i < words.length; i++) {
    var w = words[i];
    if (w == "test")
      alert("test - true");
  }
}
body {
  padding: 0;
  margin: 0;
}
textarea {
  width: 95%;
  padding: 10px;
  height: 700px;
  text-align: right;
  float: right;
}
button {
  width: 95%;
  padding: 10px;
  text-align: center;
  float: right;
  background-color: green;
}
<textarea id="codeArea">

</textarea>
<button id="submit" onclick="run()">הרץ</button>

<script src="compiler.js"></script>
<script src="methods.js"></script>

除此之外,您的代码将执行良好。

关于javascript - 来自输入的字符串和运行时的字符串不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32072857/

相关文章:

Javascript同步事件问题

javascript - 将 Python 中的行转换为 JavaScript : [(M[i], k//M[i])]

python - 要在 Python 中列出的字符串

java - 从字符串中删除 URL 前缀(http :/, www 等)

string - 大写与小写

string - 各种位串的模式搜索

java - 在 Java 中是否可以覆盖 Objects 数组的 'toString'?

javascript - 全局变量只是 `window` 对象的属性吗?

javascript - JSON - Javascript - 如何通过搜索值列表来搜索数组项

Javascript 将 main.js 分成两个文件(导入?需要?)