fix: 修复特定情况下quick_question解析错误 (#876)

This commit is contained in:
shaohuzhang1 2024-07-25 18:36:48 +08:00 committed by GitHub
parent dfe9e6fcef
commit 7471076716
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -70,23 +70,28 @@ const split_quick_question = (result: Array<string>) => {
}, []) }, [])
} }
const split_quick_question_ = (source: string) => { const split_quick_question_ = (source: string) => {
const temp_md_quick_question_list = source.match(/<quick_question>.*<\/quick_question>/g) const temp_md_quick_question_list = source.match(/<quick_question>[\d\D]*?<\/quick_question>/g)
const md_quick_question_list = temp_md_quick_question_list const md_quick_question_list = temp_md_quick_question_list
? temp_md_quick_question_list.filter((i) => i) ? temp_md_quick_question_list.filter((i) => i)
: [] : []
const split_quick_question_value = source const split_quick_question_value = source
.split(/(!\[.*?\]\(img\/.*?\){.*?})|(!\[.*?\]\(img\/.*?\))/g) .split(/<quick_question>[\d\D]*?<\/quick_question>/g)
.filter((item) => item !== undefined) .filter((item) => item !== undefined)
.filter((item) => !md_quick_question_list?.includes(item)) .filter((item) => !md_quick_question_list?.includes(item))
.map((item) => item.replace('<quick_question>', '').replace('</quick_question>', '')) console.log(split_quick_question_value, md_quick_question_list)
const result = Array.from( const result = Array.from(
{ length: md_quick_question_list.length + split_quick_question_value.length }, { length: md_quick_question_list.length + split_quick_question_value.length },
(v, i) => i (v, i) => i
).map((index) => { ).map((index) => {
if (index % 2 == 0) { if (index % 2 == 0) {
return { type: 'question', content: split_quick_question_value[Math.floor(index / 2)] } return { type: 'md', content: split_quick_question_value[Math.floor(index / 2)] }
} else { } else {
return { type: 'md', content: md_quick_question_list[Math.floor(index / 2)] } return {
type: 'question',
content: md_quick_question_list[Math.floor(index / 2)]
.replace('<quick_question>', '')
.replace('</quick_question>', '')
}
} }
}) })
return result return result