JavaScript search()方法在两个方面等同于零,从而导致问题

JavaScript search() method equates to zero in two ways, leading to problems

本文关键字:问题 等同于 两个 方法 search JavaScript 方面      更新时间:2023-09-26

如果您使用这样的代码:

var string = "javascript"; 
var search = string.search("");
console.log(search);

然后你取下这段代码:

var string = "javascript"; 
var search = string.search("j");
console.log(search);

这两段代码的计算结果均为0。这相当烦人,因为我认为它应该是-1,因为没有比赛,什么都没有。这是我试图编写的脚本中的一个问题,因为尽管它们的值不相同,但它们的计算结果都是完全相同的数字,这使我将.json文件中的所有数据从以下位置移动一个空格:

      "heman",
      "candy",
      "powerpuffgirls",
      "oranges"

到此:

      " heman",
      " candy",
      " powerpuffgirls",
      " oranges"

因为当我从输入字段测试用户输入的.json数据的匹配时,我无法评估数据是空白还是输入了一个匹配字符(因为javascript搜索方法将两者计算为相同的"0")。javascript无法知道在零索引处移动的"nothing"answers"singlematchingchar'"之间的区别(因为这是一个单独的匹配字符),这迫使我将所有.json数据移动到一个空间上。

这感觉。。。做错事,喜欢不好好练习。这是一个解决方案,但似乎是一个蹩脚的解决方案。有人知道解决这种问题的办法吗?这似乎是一个非常简单的常见问题。有没有办法解决这个问题,也许是用正则表达式之类的?

请记住:始终,无论变量字符串(包括空字符串)的值是多少

string.search("") = 0 

所以,请检查字符串的长度!

if (string.length == 0) // Empty string
var search = query.length === 0 ? -1 : string.search(query);