如何比较字符串的一部分 - 例如,如果我想比较字符串 A 是否是字符串 B 的一部分。我想知道这一点:何时string A = "abcd"
它string B = "abcdef"
需要返回 true。我如何在 JavaScript 中做到这一点?如果我使用substring(start, end)
我不知道将什么值传递给start
andend
参数。有任何想法吗?
问问题
41154 次
7 回答
27
您可以使用indexOf
:
if ( stringB.indexOf( stringA ) > -1 ) {
// String B contains String A
}
于 2012-12-12T06:21:11.273 回答
18
像这样:
var str = "abcdef";
if (str.indexOf("abcd") >= 0)
请注意,这是区分大小写的。如果你想要一个不区分大小写的搜索,你可以写
if (str.toLowerCase().indexOf("abcd") >= 0)
或者,
if (/abcd/i.test(str))
以及不区分大小写搜索的通用版本,您可以设置任何大小写的字符串
if (stringA.toLowerCase().indexOf(stringB.toLowerCase()) >= 0)
于 2012-12-12T06:28:24.163 回答
13
Javascript ES6/ES2015 有String.includes()
,几乎兼容所有浏览器,除了 IE。(但还有什么新东西?)
let string = "abcdef";
string.includes("abcd"); //true
string.includes("aBc"); //false - .includes() is case sensitive
于 2018-11-06T13:35:52.033 回答
4
如果您正在处理大字符串并且您只需要验证字符串的开头,则使用 indexOf 或 match 会不必要地缓慢。更好的解决方案是使用 startsWith() 或其等效函数——来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith:
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position){
position = position || 0;
return this.substr(position, searchString.length) === searchString;
};
}
于 2016-04-07T22:28:07.063 回答
3
"abcdef".indexOf("abcd") !== -1
应该没问题
于 2012-12-12T06:21:07.670 回答
1
你也可以试试javascript搜索
if( stringA.search(stringB) > -1){
}
于 2012-12-12T06:25:16.267 回答
1
使用正则表达式可能会对您有所帮助。
var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){
return true;
}
于 2012-12-12T06:27:18.797 回答