javascript - 为什么 IndexOf 不匹配整个子字符串?

标签 javascript jquery indexof

我正在尝试制作一个基于文本的游戏,我需要使用 Javascript 和/或 jQuery 从 textarea 元素中搜索用户输入中的某些子字符串,以便触发唯一的响应。

我尝试使用 PHP 将输入作为表单数据提交,但就我的代码而言,使用 JS/jQuery 更简单。我目前正在使用indexOf()方法。

var substr = "test substr";
function test() {
  var textareaVal = $("#wiyetxt").val();
  if (substr.indexOf(textareaVal) !== -1) {
    alert("Found");
  }
  else {
    alert("Nope");
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="wiyetxt"></textarea>
<input type="button" onclick="test();" value="Send">
<input type="reset" value="Clear">

当我的输入包含字符串“test substr”时,我希望我的函数会发出“Found”警报,但是如果子字符串中的任何字母按顺序出现,它会发出“Found”警报。例如,“t”、“es”和“substr”都提示“Found”以及确切的字符串。但是,如果我向字符串添加任何内容,它会警告“Nope”,例如,“test substr test substr”返回“Nope”。为什么会发生这种情况?

最佳答案

这是因为您要查找变量的子字符串,而不是查找输入字符串的子字符串。

您需要像这样翻转indexOf的参数:

if (textareaVal.indexOf(substr) !== -1) {

关于javascript - 为什么 IndexOf 不匹配整个子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564320/

相关文章:

Javascript indexOf() 不工作

javascript - 如何更改索引表达式的类型?即: c[k]

javascript - setInterval 无法按预期使用 javascript oops

javascript - 这对我的 jQuery 脚本来说是一个好的结构吗?

javascript - Node 异步库 filterLimit 总是返回 undefined

javascript - 如何在 MomentJS 中将日期转换为 UNIX 时间戳?

javascript - JQuery 动画效果不正确

javascript - 在 python 中加密 - 在 Javascript 中解密

javascript - 无法删除 Span 元素的类

javascript indexOf 总是返回 -1