From cdd48ffa93cc2017db1651d69e3074e571b4c972 Mon Sep 17 00:00:00 2001 From: mashitao2 Date: Thu, 17 Nov 2022 18:09:26 +0800 Subject: [PATCH] =?UTF-8?q?Issue:#I61QWC:=E6=A8=A1=E7=B3=8A=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9=20Description:=20Fuzzy=20query=20mo?= =?UTF-8?q?dification=20Sig:=20SIG=5FNotes=20Feature=20or=20Bugfix:=20Bugf?= =?UTF-8?q?ix=20Binary=20Source:=20No=20Signed-off-by:=20mashitao2=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ets/default/model/searchModel/SearchModel.ets | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/common/utils/src/main/ets/default/model/searchModel/SearchModel.ets b/common/utils/src/main/ets/default/model/searchModel/SearchModel.ets index 2609432..9e6c82e 100644 --- a/common/utils/src/main/ets/default/model/searchModel/SearchModel.ets +++ b/common/utils/src/main/ets/default/model/searchModel/SearchModel.ets @@ -13,6 +13,7 @@ * limitations under the License. */ +import util from '@ohos.util' import {LogUtil} from '../../baseUtil/LogUtil' import NoteData from '../../model/databaseModel/NoteData' import ohosDataRdb from '@ohos.data.rdb'; @@ -40,9 +41,19 @@ export class SearchModel { LogUtil.info(TAG, "query is null") return [] } - let searchData: NoteData[] = []; + let searchData: NoteData[] = [] noteDataArray.forEach((noteData) => { - if (noteData.content_text.replace(/<[^>]+>/g,"").toLowerCase().indexOf(query.toLowerCase()) != -1 + let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/ + let contentTextValue: string + if (base64regex.test(noteData.content_text)) { + let Base64 = new util.Base64() + let textDecoder = new util.TextDecoder("utf-8", { ignoreBOM: true }) // utf-8:编码格式为utf-8,ignoreBOM:是否忽略BOM标记 + let decodeStr = Base64.decodeSync(noteData.content_text) + contentTextValue = textDecoder.decode(decodeStr, { stream: false }) // stream:在随后的decode()调用中是否跟随附加数据块 + } else { + contentTextValue = noteData.content_text + } + if (contentTextValue.replace(/<[^>]+>/g, "").toLowerCase().indexOf(query.toLowerCase()) != -1 || noteData.title.toLowerCase().indexOf(query.toLowerCase()) != -1) { LogUtil.info(TAG, "uuid " + noteData.uuid) searchData.push(noteData); -- Gitee