Javascript textarea的字符集,未识别关键字
我有一个名为编辑器的编辑器,它应该作为编程语言的编辑器嵌入到网页中;但我们正在使用它作为其他内容的编辑器。正如editarea手册中所述,我们构建了一个新的语法文件,但它包含特殊字符,因为它必须识别的语法包含意大利语单词。下面是语法文件的一些快照:Javascript textarea的字符集,未识别关键字,javascript,regex,encoding,Javascript,Regex,Encoding,我有一个名为编辑器的编辑器,它应该作为编程语言的编辑器嵌入到网页中;但我们正在使用它作为其他内容的编辑器。正如editarea手册中所述,我们构建了一个新的语法文件,但它包含特殊字符,因为它必须识别的语法包含意大利语单词。下面是语法文件的一些快照: ,'KEYWORDS' : { 'feelings' : [ "emozioni","gioia","felicit\xE0", etc. 这些是正则表达式: ,'REGEXPS' : {
,'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_文本函数的参数进行编码和解码:
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
但一切似乎都没有改变。
如果有人比我更了解这个问题(我不明白为什么我在单词中添加带有重音的字符时会正确地将文本着色),那么请用简单的语言向我解释。
谢谢你的努力。
Agnese如果您希望得到一些答案,请减少代码,缩短您的问题:)好的,更改了,我希望它现在更具可读性。Agnese为什么您需要在语法文件中输入特定于编码(ISO-8859-1?)的十六进制代码,而不仅仅是输入实际文本?也不清楚你的站点使用什么编码(UTF-8?)。但是如果你在任何地方都使用相同的编码,你就不需要这些黑客。