From fc299ed7b7949324c9364377b7f819b61abe44b6 Mon Sep 17 00:00:00 2001 From: yuliang_guo Date: Wed, 28 Jan 2026 14:40:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(exam):=20=E6=94=B9=E8=BF=9B=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E9=A2=98=E7=AD=94=E6=A1=88=E6=8D=A2=E8=A1=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E9=81=BF=E5=85=8D=E8=AF=AF=E5=88=86=E5=89=B2?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/exam/practice.vue | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/src/views/exam/practice.vue b/frontend/src/views/exam/practice.vue index cb39519..bc70dfd 100644 --- a/frontend/src/views/exam/practice.vue +++ b/frontend/src/views/exam/practice.vue @@ -1184,10 +1184,15 @@ const formatCorrectAnswer = (question: any) => { if (question.type === 'single' || question.type === 'multiple') { // 如果有correctAnswer字段(来自Dify的原始correct) if (question.correctAnswer) { - // 多选题格式优化:将 "A:xxx,B:xxx" 改为换行显示 - // 匹配 ",A:" 或 ",B:" 等格式,在逗号后的选项字母前换行 - const formatted = question.correctAnswer.replace(/,([A-Za-z][::])/g, '\n$1') - return formatted + // 多选题格式优化:将 "A:xxx、B:xxx" 或 "A:xxx,B:xxx" 改为换行显示 + // 使用更精确的匹配:提取完整的选项格式 X:内容 + const optionPattern = /([A-Za-z][::])([^A-Za-z]*?)(?=(?:[,、]?[A-Za-z][::])|$)/g + const matches = [...question.correctAnswer.matchAll(optionPattern)] + if (matches.length > 1) { + // 多个选项,换行显示 + return matches.map(m => m[1] + m[2].trim()).join('\n') + } + return question.correctAnswer } // 否则从options中提取 return question.options