我有一个名为editarea的编辑器,它可以作为编辑语言的编辑器,嵌入到网页中;但我们正在使用它作为其他东西的编辑器。正如它在editarea的手册中所展示的那样,我们已经构建了一个新的语法文件,但它包含特殊字符,因为它必须识别的语法包含意大利语单词。以下是语法文件的一些快照:
,'KEYWORDS' : {
'feelings' : [
"emozioni","gioia","felicit\xE0", etc.
这些是正则表达式:
,'REGEXPS' : {
'lemmas' : {
'search' : "()(#[A-Za-z0-9'èéòàìù]*)()"
//'search' : "()(#[A-Za-z0-9'èéòàìù\s]+#)()"
,'class' : 'lemmas'
,'modifiers' : 'g'
,'execute' : 'before'
},
正如您所看到的,带有重音的字母用“关键字”中的代码表示,而“正则表达式”中没有代码。问题是,如果单独打字,以重音字母结尾的单词不会以粗略的方式“着色”。如果您在重音后键入一个字母,那么它们会被识别(但在这种情况下,它们不应被识别为单词,而应被识别为具有正则表达式的引理)。 这个错误很令人困惑。 我尝试编码和解码文本区域的输入,colorize_text函数的参数使用这些函数:
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
但似乎没有任何改变。 如果有人比我更了解这个问题(我无法理解为什么当我在带有重音的单词中添加一个字符时它正确地着色文本)那么请用简单的语言向我解释。 谢谢你的努力。 阿格尼斯