使用没有正则表达式的循环在字符串上匹配模式
matching pattern on the string using loop without regex
我想使用 for 循环匹配字符串上的模式,我创建了这样的代码:
function partialCheck(str, partial) {
var pattern = [];
for (var i =0; i <= str.length; i++){
if(partial === str[i]+str[i+1]+str[i+2]){
pattern.push(partial);
}
}
return pattern;
}
在测试用例上,它应该显示这样的结果:
console.log(partialCheck('abcdcabdabc', 'abc')); // ["abc","abc"]
console.log(partialCheck('accHghebchg', 'chg')); // ["cHg","chg"]
但是在第二种情况下,结果是这样的:
console.log(partialCheck('accHghebchg', 'chg')); // ["chg"]
问题是可以在不使用正则表达式的情况下忽略大小写将 cHg 放入数组吗?
先谢谢了。
比较前转换为小写。
您也可以使用 substr()
而不是连接字符串的特定索引。这允许您使用任何尺寸 partial
.
并且您应该将子字符串推入结果数组,而不是 partial
,以便您从字符串中获取大小写。
function partialCheck(str, partial) {
var pattern = [];
partial = partial.toLowerCase();
for (var i = 0; i <= str.length - partial.length; i++) {
if (partial === str.substr(i, partial.length).toLowerCase()) {
pattern.push(str.substr(i, partial.length));
}
}
return pattern;
}
console.log(partialCheck('accHghebchg', 'chg'));
是的,您可以使用 substring
使代码更简单:
function partialCheck(str, partial) {
var pattern = [];
partial = partial.toLowerCase();
for (var i =0; i <= str.length; i++){
var substr = str.substring(i, i + 3);
if(partial === substr.toLowerCase()){
pattern.push(substr);
}
}
return pattern;
}
我想使用 for 循环匹配字符串上的模式,我创建了这样的代码:
function partialCheck(str, partial) {
var pattern = [];
for (var i =0; i <= str.length; i++){
if(partial === str[i]+str[i+1]+str[i+2]){
pattern.push(partial);
}
}
return pattern;
}
在测试用例上,它应该显示这样的结果:
console.log(partialCheck('abcdcabdabc', 'abc')); // ["abc","abc"]
console.log(partialCheck('accHghebchg', 'chg')); // ["cHg","chg"]
但是在第二种情况下,结果是这样的:
console.log(partialCheck('accHghebchg', 'chg')); // ["chg"]
问题是可以在不使用正则表达式的情况下忽略大小写将 cHg 放入数组吗?
先谢谢了。
比较前转换为小写。
您也可以使用 substr()
而不是连接字符串的特定索引。这允许您使用任何尺寸 partial
.
并且您应该将子字符串推入结果数组,而不是 partial
,以便您从字符串中获取大小写。
function partialCheck(str, partial) {
var pattern = [];
partial = partial.toLowerCase();
for (var i = 0; i <= str.length - partial.length; i++) {
if (partial === str.substr(i, partial.length).toLowerCase()) {
pattern.push(str.substr(i, partial.length));
}
}
return pattern;
}
console.log(partialCheck('accHghebchg', 'chg'));
是的,您可以使用 substring
使代码更简单:
function partialCheck(str, partial) {
var pattern = [];
partial = partial.toLowerCase();
for (var i =0; i <= str.length; i++){
var substr = str.substring(i, i + 3);
if(partial === substr.toLowerCase()){
pattern.push(substr);
}
}
return pattern;
}