我正在尋找一種算法,以檢查是否在另一個存在的字符串。
例如:
'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
預先感謝。
我正在尋找一種算法,以檢查是否在另一個存在的字符串。
例如:
'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
預先感謝。
使用indexOf
:
'Hello, my name is jonh LOL.'.indexOf('Hello, my name is jonh') > -1; //true
'LOL. Hello, my name is jonh'.indexOf('Hello, my name is jonh') > -1; //true
您還可以擴展String.prototype
有contains
功能:
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
對此答案更進一步,您可以創建'function contains(haystack,needle){返回haystack.indexOf(針)> -1; }'或者甚至在String原型上創建一個 –
@Jonathan我添加了一個'String.prototype'函數。 –
感謝您的原型功能靈活性課! – blackhawk
我會假設使用預編譯的基於Perl的正則表達式將是非常有效的。
RegEx rx = new Regex('Hello, my name is jonh', RegexOptions.Compiled);
rx.IsMatch('Hello, my name is jonh LOL.'); // true
我正在使用JavaScript,但感謝:P –
更好: 'var regex = /你好,我的名字是jonh /; regex.test(「你好,我的名字是jonh LOL。」); // true' – clarkb86
另一個選項可能是通過使用match()匹配正則表達式:http://www.w3schools.com/jsref/jsref_match.asp。
> var foo = "foo";
> console.log(foo.match(/bar/));
null
> console.log(foo.match(/foo/));
[ 'foo', index: 0, input: 'foo' ]
As Digital指出indexOf
方法是檢查的方法。如果您想要一個更具說明性的名稱,例如contains
,則可以將其添加到String
原型。
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);
使用逐不要和布爾組合這些將其轉換爲一個布爾比將其轉換背部。
這裏是檢查字符串是否在字符串中的最常用方法的基準:http://jsben.ch/#/o6KmH – EscapeNetscape