如何比较字符串的一部分 - 例如,如果我想比较字符串A是否为字符串B的一部分。 我想找出这个:当 string A = "abcd"
和 string B = "abcdef"
时,它需要返回true。 在JavaScript中该怎么做呢? 如果我使用 substring(start, end)
,我不知道要传递给 start
和 end
参数哪些值。 有什么建议吗?
如何比较字符串的一部分 - 例如,如果我想比较字符串A是否为字符串B的一部分。 我想找出这个:当 string A = "abcd"
和 string B = "abcdef"
时,它需要返回true。 在JavaScript中该怎么做呢? 如果我使用 substring(start, end)
,我不知道要传递给 start
和 end
参数哪些值。 有什么建议吗?
indexOf
:if ( stringB.indexOf( stringA ) > -1 ) {
// String B contains String A
}
就像这样:
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)
Javascript ES6/ES2015有String.includes()
方法, 它几乎在所有浏览器上都具有兼容性除了IE. (但这又有什么新鲜事吗?)
let string = "abcdef";
string.includes("abcd"); //true
string.includes("aBc"); //false - .includes() is case sensitive
indexOf
。 - mix3d如果你处理的是较大的字符串,并且只需要验证字符串的开头,使用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;
};
}
"abcdef".indexOf("abcd") !== -1
应该没问题。
使用正则表达式可能会有帮助。
var patt = new RegExp(stringA, 'i');
if(stringB.match(patt)){
return true;
}
您也可以尝试使用JavaScript搜索
if( stringA.search(stringB) > -1){
}