1

我正在使用 CKEditor 允许用户将文本输入到用 c# 编码的 asp 页面中,该页面输出一些圣经文本,现在我想添加一个函数,让用户键入一些我将检测并替换为一些文本的字符串来自圣经,例如,如果我进入文本编辑器(例如,用~~~作为特殊的字符序列,我用它来识别特殊的代码/字符串)

今天是快乐的一天,我学到了:~~~1 John 4:7~~~。

代码隐藏应该能够检测到“1 John 4:7”字符串前后的~~~,并且能够知道可以查找并使用“1 John 4:7”字符串查找数据结构(我正在考虑使用哈希或字典或链表)页面上的输出可能是这样的

今天是快乐的一天,我学到了:“亲爱的,让我们彼此相爱,因为爱是来自上帝的。”

我可以使用普通文本框完成此操作,但如果我们有一个所见即所得的编辑器,则会在后台添加很多标签,如果我想为字符串添加颜色,它会使字符串更加复杂,因为编辑器可能不会突出显示从开头~~~到后面的~~~结尾的整个字符串。我可能会得到这样的字符串(ckeditor中文本的来源)

<p> <span class="text 1John-4-7" id="en-KJ21-30580">~<span style="background-color: #ffff00">~~</span><strong><span style="background-color: #ffff00">1 Jo<u>hn </u><em>4:7</em></span></strong><span style="background-color: #ffff00">~~~</span></span></p>

所以不是像这样的简单字符串 ~~~1 John 4:7~~~ ,我们有一个更长的字符串,有很多格式(这是预期的,因为我想能够在编辑器中添加带有格式的文本),单词 John 和“~~~”序列在标签之间分开。(因为字符串已部分突出显示,在这种情况下,我应该为整个特殊字符串使用出现的第一种颜色,或者为简单起见忽略整个字符串之间的所有标签(意味着查找的文本将仅采用格式包含~~~特殊字符串/代码~~~)

如果我们可以将整个字符串 ~~~1 John 4:7~~~ 作为原子字符串(我的意思是在编辑器中不会更改的连续字符串),那就太好了,但这可能不是案例,所以我想问一下,我应该怎么做,这样我就可以允许用户在编辑器中自由输入文本,但让 asp 页面能够检测到用户键入了一个特殊的字符串 /它可以尝试查找的代码,当使用一系列特殊字符(在本例中为~~~)将其括起来时。

非常感谢大家的阅读和美好的一天。

4

1 回答 1

1

我看到两个解决方案。

  1. 如果您想在客户端执行此操作,则必须深入研究 CKEditor 附加系统。有很多入门示例。
  2. 使用简单的正则表达式在服务器端执行此操作。
于 2013-01-26T07:53:35.423 回答