Я имею массив со строкой:Как найти строку соответствия с отсутствующей буквой?
var dict =["johndoe","johnrte","jahnaoi"];
Я хочу сделать функцию (с регулярным выражением или другими), чтобы проверить, если «ул» с отсутствующей буквой подходит один из его пункта. Пропущенная буква представлена символом «#». Предположим, что строка с отсутствующей буквой - «j # hn # oe». Я начал так, но я думаю, что не пойду правильно.
function Checkword(str) {
// Check were is the #
var indices = [0]
for (var i = 0; i < str.length; i++) {
if (str[i] === "#") indices.push(i);
}
var regexel = "/^";
for (var index = 0; index < indices.length; index++) {
regexel.concat(str.substring(indices[index - 1], indices[index]));
regexel.concat("[a-z]");
}
regexel.concat("$/");
var reg = new Regex(regexel);
for (r = 0; r < dict.length; i++) {
if (reg.test(dict[r]) {
console.log(dict[r]);
}
}
}
Checkword("j#hn#oe");
В этом случае он возвращает первый и последний элемент.
*** Редактировать после комментария:
Какое слово должно пройти мой тест:
If str is j#hndo#=> dict[0], dict[2].
If str is j####### => dict[0], dict[1], dict[2];
IF str is Jonh#oe=> dict[0]
if str is a#ze#ts=> nothing.
звучит как вопрос интервью – Soren
Можете ли вы уточнить, что речь идет? –
, так что буквы отсутствуют в первом и последнем элементах, которые есть у второго? '#' без разницы. – sweaver2112