Помогите с регуляркой
Здравствуйте. Помогите с регулярукой для поиска. Допустим есть массив со строками:
То есть не важно какие символы идут до ключа и после ключа, главное, что в строке есть последовательность введенных букв:) |
Цитата:
Поиск подстроки toLowerCase Изменение регистра |
Я не стал вдаваться в детали, на деле это поиск через плагин для mongoose в mongoDB, туда нужно передать регулярку, так что нужна именно регулярка
|
|
Благодарю за ответ, вроде это не совсем то, что нужно, возможно я чуть не так описал задачу - нужно забыть про массив=)) Мне просто нужно что бы регулярка проверяла есть ли в одной строке последовательность букв введенных в поиск. Я очень плох в регулярках, по этому и попросил помощи, если говорить абстрактно, на примере маски, то это должно выглядеть как-то так - **str** - то есть - не важно есть ли символы вначале, какие они и тд, не важно есть ли символы после строки, какие они и т.д. - главное что бы была последовательность букв str. Как-то так
RegExp(`/\D/${options.search.toString()\D}` |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Tipylja,
RegExp.escape = s => s.replace(/[[\\^$.|?*+()]/gim, "\\$&"); function createReg(str) { return new RegExp(RegExp.escape(str), "gi"); } alert(createReg("test")); |
Tipylja,
const arr = [ "Петров Василий Сергеевич", "Иванов Василий Петрович", "Краснов Сергей Петрович"]; RegExp.escape = s => s.replace(/[[\\^$.|?*+()]/gim, "\\$&"); const createReg = search => new RegExp(RegExp.escape(search), "i"); let search = "вас"; let reg = createReg(search); let arSearch = arr.filter(str => reg.test(str)); console.log(search, arSearch) |
Tipylja,
const arr = [ "Петров Василий Сергеевич", "Иванов Василий Петрович", "Краснов Сергей Петрович"]; let search = "вас"; let arSearch = arr.filter(str => ~str.toLowerCase().indexOf(search.toLowerCase())); console.log(search, arSearch) |
Часовой пояс GMT +3, время: 14:46. |