Javascript 如果模式的所有单个字母都显示在字符串中,则将结果返回为true
如果模式的所有单个字母都以字符串形式出现(不考虑顺序、区分大小写以及忽略符号和数字),如何确保以下代码返回trueJavascript 如果模式的所有单个字母都显示在字符串中,则将结果返回为true,javascript,Javascript,如果模式的所有单个字母都以字符串形式出现(不考虑顺序、区分大小写以及忽略符号和数字),如何确保以下代码返回true var s=“abcdef” var p=“@C2D!” 函数匹配(字符串、模式){ var计数=0; 如果(模式){ 对于(i=0;i
var s=“abcdef”
var p=“@C2D!”
函数匹配(字符串、模式){
var计数=0;
如果(模式){
对于(i=0;i
您可以使用
function match(string, pattern) {
string = string.toLowerCase();
pattern = pattern.toLowerCase();
for (var i = 0, l = string.length; i < l; ++i) {
if(pattern.indexOf(string[i]) === -1) return false;
}
return true;
}
alert(match("abcdef", "@C2D!"));
编辑:哎呀!我没读到你想忽略符号和数字
但是你的问题没有明确的定义:
- 您想在字符串、模式或两者中忽略它们吗
- 什么是符号?是〈代码〉还是〈代码〉和〈代码〉是〈代码〉本校的一个月月内,本校的一个月月内的一个月内,该校的一个月内的一个月内的一个月内的一个月内的一个月内的一个月内的一个月内的一个月内的一个月内的本本本本本本本校的本本本本本校的本本本本本本月月月内的本本本本月月月月月的本本本本本本月月月月月的本本本本本本本月月月月月月月的本本本本本本月月月月的本本本本本月月月的本本本本月月月月月月月月的本本本本本本月月月的8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8日日日日日日,本本本本本本本本本本本本本本本本本月月月月月月月月月月的本本本本本本本本本本字母或符号
- 您似乎没有过滤掉SIMBOL。可能的解决办法
function match(string, pattern) {
var i, letter, rex,
match = false;
for (i = 0; i < pattern.length; i++) {
letter = pattern.charAt(i);
if (letter.match(/[\d|\W]/)) {
continue;
} else {
match = true;
rex = new RegExp(letter, "i");
if (!string.match(rex)) {
match = false;
break;
}
}
}
return match;
}
var s = "abcdef"
var p = "@F2D!=="
console.log(match(s, p));
函数匹配(字符串、模式){
var i,letter,rex,
匹配=假;
对于(i=0;i
将两个字符串作为字符列表进行排序,消除重复项,消除目标中不在模式中的字符串,然后确认它们是相同的,这样可能会更有条理。我只想忽略不是a、b、c的任何内容
function match(string, pattern) {
pattern = pattern.replace(/\]/g,'\\]').replace(/\^/g,'\\^').replace(/\-/g,'\\-');
return RegExp('^['+pattern+']+$','i').test(string);
}
alert(match("abcdef", "@C2D!"));
function match(string, pattern) {
var i, letter, rex,
match = false;
for (i = 0; i < pattern.length; i++) {
letter = pattern.charAt(i);
if (letter.match(/[\d|\W]/)) {
continue;
} else {
match = true;
rex = new RegExp(letter, "i");
if (!string.match(rex)) {
match = false;
break;
}
}
}
return match;
}
var s = "abcdef"
var p = "@F2D!=="
console.log(match(s, p));