Javascript 检查另一个字符串中是否存在字符串的最佳方法是什么?
可能重复:Javascript 检查另一个字符串中是否存在字符串的最佳方法是什么?,javascript,Javascript,可能重复: 我正在寻找一种算法来检查另一个字符串中是否存在字符串 例如: 'Hello, my name is jonh LOL.'.contains('Hello, my name is jonh'); //true 'LOL. Hello, my name is jonh'.contains('Hello, my name is jonh'); //true 提前谢谢 使用: 您还可以扩展String.prototype以具有包含功能: String.prototype.contains
我正在寻找一种算法来检查另一个字符串中是否存在字符串 例如:
'Hello, my name is jonh LOL.'.contains('Hello, my name is jonh'); //true
'LOL. Hello, my name is jonh'.contains('Hello, my name is jonh'); //true
提前谢谢 使用:
您还可以扩展String.prototype
以具有包含功能:
String.prototype.contains = function(substr) {
return this.indexOf(substr) > -1;
}
'Hello, my name is jonh LOL.'.contains('Hello, my name is jonh'); //true
'LOL. Hello, my name is jonh'.contains('Hello, my name is jonh'); //true
我认为使用预编译的基于Perl的正则表达式会非常有效
RegEx rx = new Regex('Hello, my name is jonh', RegexOptions.Compiled);
rx.IsMatch('Hello, my name is jonh LOL.'); // true
另一个选项是使用match()匹配正则表达式:
正如Digital所指出的,indexOf
方法是检查的方法。如果您想要一个更具声明性的名称,如包含
,则可以将其添加到字符串
原型中
String.prototype.contains = function(toCheck) {
return this.indexOf(toCheck) >= 0;
}
之后,您的原始代码示例将按编写的方式工作转到默默无闻状态如何:
!!~'Hello, my name is jonh LOL.'.indexOf('Hello, my name is jonh'); //true
if(~'LOL. Hello, my name is jonh'.indexOf('Hello, my name is jonh'))
alert(true);
使用按位NOT和to布尔NOT将其转换为布尔值,而不是将其转换回布尔值。进一步回答这个问题,您可以创建函数contains(haystack,needle){return haystack.indexOf(needle)>-1;}
甚至在字符串上创建一个prototype@Jonathan我添加了一个String.prototype
函数,val>-1
更少operations@zzzzBov,从技术上讲是!!这是不必要的。因此,只有波浪线可以工作……这取决于您需要布尔值的严格程度。我同意,~
将输出正确的错误状态。我正在使用JavaScript,但谢谢:PEven更好:var regex=/Hello,我的名字是jonh/;test(“你好,我的名字是jonh LOL.”;//true
这里提供了检查字符串是否在字符串中的最常用方法的基准:
String.prototype.contains = function(toCheck) {
return this.indexOf(toCheck) >= 0;
}
!!~'Hello, my name is jonh LOL.'.indexOf('Hello, my name is jonh'); //true
if(~'LOL. Hello, my name is jonh'.indexOf('Hello, my name is jonh'))
alert(true);