我有一个texteareacalled note_text,一个divcallednote_preview和这个函数:function fence_math(text) { return text .replace(new RegExp('\\\((.*?)\\\)', 'g'), '`memviv-math $1`') .replace(new RegExp('\\\[(.*?)\\\]', 'g'), '`memviv-equation $1`');}如果我运行这个:note_preview.innerHTML = fence_math(note_text.value);当note_text包含\(a *b* c\)我得到<div id="note_preview">\`memviv-math a *b* c\`</div>为什么重音符号前有反斜杠?我会期望:<div id="note_preview">`memviv-math a *b* c`</div>我该怎么做才能得到正确的结果?
1 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
当您从输入中获取价值时,它会/
在您的情况下转义特殊字符,这就是为什么您note_text.value
是"\\(a *b* c\\)"
. 尝试添加额外的反斜杠以转义到您的 RegExp 函数
.replace(new RegExp('\\\\((.*?)\\\\)', 'g'), '`memviv-math $1`') .replace(new RegExp('\\\\[(.*?)\\\\]', 'g'), '`memviv-equation $1`');
添加回答
举报
0/150
提交
取消