通常我会期待一种String.contains()方法,但似乎没有一种方法.
检查这个的合理方法是什么?
在javascript中实现数组交叉的最简单,无库的代码是什么?我想写
intersection([1,2,3], [2,3,4,5])
得到
[2, 3]
很多时候我使用字符串match函数来知道字符串是否与正则表达式匹配.
if(str.match(/{regex}/))
这有什么区别:
if (/{regex}/.test(str))
他们似乎给出了相同的结果?
除了可读性之外,使用之间是否存在任何可辨别的差异(可能性能)
str.indexOf("src") 
和
str.match(/src/)
我个人更喜欢match(和regexp),但同事似乎走了另一条路.我们想知道它是否重要......?
编辑:
我应该在一开始就说过,这是用于执行部分普通字符串匹配的函数(在JQuery的类属性中获取标识符),而不是使用通配符等进行完整的正则表达式搜索.
class='redBorder DisablesGuiClass-2345-2d73-83hf-8293' 
所以它的区别在于:
string.indexOf('DisablesGuiClass-');
VS
string.match(/DisablesGuiClass-/)
我需要实现一种使用Java在字符串(haystack)列表中搜索子字符串(针)的方法.
更具体地说,我的应用程序有一个用户配置文件列表.如果我输入一些字母,例如"Ja",然后搜索,则所有名称中包含"ja"的用户都应该显示.例如,结果可能是"Jack","Jackson","Jason","Dijafu".
在Java中,据我所知,有3种内置方法可以在字符串中查看搜索子字符串.
string.contains()
string.indexOf()
正则表达式.它类似于string.matches("ja"))
我的问题是: 上面每种方法的运行时间是多少?哪一个是检查字符串列表是否包含给定子字符串的最快或最有效或最流行的方法.
我知道存在一些做同样事情的算法,如Boyer-Moore字符串搜索算法,Knuth-Morris-Pratt算法等.我不想使用它们,因为我只有一小串字符串,我认为使用它们对我来说有点矫枉过正.此外,我必须为这种非内置算法输入许多额外的编码.如果您认为我的想法不正确,请随时纠正我.
例如我有文字:
"testestestestt testestestes <img src='image.jpg'>"
我想写函数检查字符串是否是img标签并返回true
word.includes(str)返回boolean表示是否str包含在 中,如果不存在,则word
 word.search(str)返回表示第一个在 中找到的number位置的位置。strword-1
起初,我想知道为什么 JavaScript 提供这两种方法,但是可以只创建一种适用于这两种情况的方法,返回位置 else returns undefined,但由于两者都存在,所以它应该是有原因的,也许String.includes更快,或者也许,它是只是为了让事情变得更清楚。
它看起来String.includes应该更快,因为它只检查是否str存在而不是试图找到它的位置,但是,我的简单想法:检查算法str中是否存在应该循环遍历字符(如果有我遗漏的东西让我知道),一旦找到,它就可以轻松检索其位置,所以速度再快不过了。wordwordstrString.includes
我想知道它们之间的真正区别以及两者存在的原因。谢谢你!
javascript ×6
regex ×3
string ×2
substring ×2
algorithm ×1
client ×1
intersection ×1
java ×1
jquery ×1
performance ×1
search ×1