diff --git a/client/components/Search/BaseList.js b/client/components/Search/BaseList.js index 0a8113f..ddc7b9d 100644 --- a/client/components/Search/BaseList.js +++ b/client/components/Search/BaseList.js @@ -391,8 +391,8 @@ export default class BaseList { } else if (searchValue[0] == '~') {//RegExp searchValue = searchValue.substring(1); - const re = new RegExp(searchValue, 'gi'); - return re.exec(bookValue); + const re = new RegExp(searchValue, 'i'); + return re.test(bookValue); } else { //where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`; return bookValue.localeCompare(searchValue) >= 0 && bookValue.localeCompare(searchValue + maxUtf8Char) <= 0; diff --git a/server/core/DbSearcher.js b/server/core/DbSearcher.js index 69697a4..79cceb2 100644 --- a/server/core/DbSearcher.js +++ b/server/core/DbSearcher.js @@ -71,8 +71,8 @@ class DbSearcher { a = a.substring(1); where = ` await (async() => { - const re = new RegExp(${db.esc(a)}, 'gi'); - @@indexIter('value', (v) => re.exec(v) ); + const re = new RegExp(${db.esc(a)}, 'i'); + @@indexIter('value', (v) => re.test(v) ); })() `; } else { @@ -577,8 +577,8 @@ class DbSearcher { return ` (() => { - const re = new RegExp(${db.esc(searchValue)}, 'gi'); - return re.exec(row.${bookField}); + const re = new RegExp(${db.esc(searchValue)}, 'i'); + return re.test(row.${bookField}); })() `; } else { diff --git a/server/core/opds/BasePage.js b/server/core/opds/BasePage.js index fba01bb..fd5abe4 100644 --- a/server/core/opds/BasePage.js +++ b/server/core/opds/BasePage.js @@ -256,8 +256,8 @@ class BasePage { } else if (searchValue[0] == '~') {//RegExp searchValue = searchValue.substring(1); - const re = new RegExp(searchValue, 'gi'); - return re.exec(bookValue); + const re = new RegExp(searchValue, 'i'); + return re.test(bookValue); } else { //where = `@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`; return bookValue.localeCompare(searchValue) >= 0 && bookValue.localeCompare(searchValue + maxUtf8Char) <= 0;