Добавлен поиск по регулярным выражениям

This commit is contained in:
Book Pauk
2022-12-09 16:40:30 +07:00
parent 8837fea654
commit c17b696d61
6 changed files with 51 additions and 7 deletions

View File

@@ -385,7 +385,14 @@ export default class BaseList {
} else if (searchValue[0] == '#') {
searchValue = searchValue.substring(1);
return !bookValue || (bookValue !== emptyFieldValue && !enru.has(bookValue[0]) && bookValue.indexOf(searchValue) >= 0);
if (!bookValue)
return false;
return bookValue !== emptyFieldValue && !enru.has(bookValue[0]) && bookValue.indexOf(searchValue) >= 0;
} else if (searchValue[0] == '~') {//RegExp
searchValue = searchValue.substring(1);
const re = new RegExp(searchValue, 'gi');
return re.exec(bookValue);
} else {
//where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`;
return bookValue.localeCompare(searchValue) >= 0 && bookValue.localeCompare(searchValue + maxUtf8Char) <= 0;

View File

@@ -789,6 +789,11 @@ class Search {
Указание простого "#" в поиске по названию означает: найти всех авторов, названия книг которых начинаются не с русской или латинской буквы
</li>
<br>
<li>
"~" поиск по регулярному выражению. Например, для "~^\\s" в поле названия, будут найдены
все книги, названия которых начинаются с пробельного символа
</li>
<br>
<li>
"?" поиск пустых значений или тех, что начинаются с этого символа. Например, "?" в поле серии означает: найти всех авторов, у которых есть книги без серий
или название серии начинается с "?".

View File

@@ -160,6 +160,9 @@ class SelectExtSearchDialog {
<li>
префикс "#": поиск подстроки в строке, но только среди начинающихся не с латинского или кириллического символа
</li>
<li>
префикс "~": поиск по регулярному выражению
</li>
<li>
префикс "?": поиск пустых значений или тех, что начинаются с этого символа
</li>