首页 > 解决方案 > .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。问题是什么?

标签: javascriptangularstring-matching

解决方案


问题出现在符号“&”中。文本更改后,它被替换为“amp”。所以我把它换成!


推荐阅读