如何比较字符串的一部分 - 例如,如果我想比较字符串A是否为字符串B的一部分。我想知道这一点:当string A = "abcd"
和string B = "abcdef"
时需要回归真实。我如何在JavaScript中执行此操作?如果我使用substring(start, end)
,我不知道要传递给start
和end
参数的值。有什么想法吗?
答案 0 :(得分:18)
您可以使用indexOf
:
if ( stringB.indexOf( stringA ) > -1 ) {
// String B contains String A
}
答案 1 :(得分:11)
像这样:
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)
答案 2 :(得分:6)
Javascript ES6 / ES2015具有String.includes()
,几乎具有所有浏览器兼容性except for IE。 (但是还有什么新东西?)
let string = "abcdef";
string.includes("abcd"); //true
string.includes("aBc"); //false - .includes() is case sensitive
答案 3 :(得分:2)
如果要处理大字符串并且只需要验证字符串的开头,则使用indexOf或match会非常慢。更好的解决方案是使用来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith的startsWith()或其等效函数:
if (!String.prototype.startsWith) {
String.prototype.startsWith = function(searchString, position){
position = position || 0;
return this.substr(position, searchString.length) === searchString;
};
}
答案 4 :(得分:1)
"abcdef".indexOf("abcd") !== -1
应该没问题
答案 5 :(得分:1)
您也可以尝试使用javascript搜索
if( stringA.search(stringB) > -1){
}
答案 6 :(得分:1)
使用正则表达式可能会对您有所帮助。
var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){
return true;
}