javascript - .match() 更改文本后不起作用。| JavaScript, 角
问题描述
我在文本编辑器中处理我的自定义块。我是这样做的。
我单击输入块并在文本编辑器中添加了此字符串<%&color=<;#F89F4C;>{{ input text here }}&%>
比我按下预览并查看结果。
我的代码如何得到这个表达式。
const matches: Array<string> = this.previewText.match(/<%&(.*?)&%>/g);
在matches
我得到所有字符串块的数组,然后在预览时将其替换为 html。
它工作完美。但是如果我在添加我的字符串块行后更改了一些文本,函数
this.previewText.match(/<%&(.*?)&%>/g);
找不到任何匹配项。
示例:我添加了新的字符串块表达式
在预览模式
再做一次,但在添加块后使用文本。
在预览模式下,我看到了这一点。
在文本编辑器中也是如此。this.previewText.match(/<%&(.*?)&%>/g)
如果我在添加块字符串后更改文本编辑器中的文本,则函数返回 null。问题是什么?
解决方案
问题出现在符号“&”中。文本更改后,它被替换为“amp”。所以我把它换成!