我想知道是否可以返回“奇怪”字符,或者更确切地说是对语言很重要的字符
例如: \ ; '
我想知道,因为我需要通过一个检查文本键的 unicode 值的函数返回它们,并通过它的数字返回字符,所以我也需要这些。
我收到 356|error: missing terminating ' 字符
第 356 行如下所示
return '\';
想法?
反斜杠是特殊字符的转义。如果你想要一个文字反斜杠,你必须用另一个反斜杠来转义它。尝试:
return '\\';
这里唯一的问题是反斜杠用于转义文字中的字符。例如\n
是一个新行,\t
是一个水平制表符。在您的情况下,编译器看到\'
并认为您的意思是一个'
字符(这样您就可以拥有这样的'
字符:)'\''
。你只需要逃避你的反斜杠:
return '\\';
尽管这看起来像一个包含两个字符的字符文字,但它不是。\\
是一个转义序列,表示单个反斜杠。
同样,要返回 a '
,您将执行以下操作:
return '\'';
表 7 给出了可用的转义序列列表:
您可以有一个字符文字,其中包含执行字符集中的任何字符,结果char
将具有该字符的值。但是,如果该值不适合 a char
,它将具有实现定义的值。
可以返回任何字符。
然而对于其中一些,你必须使用backslash
:来逃避它\
。
所以要返回反斜杠,你必须返回:
return '\\';
要获得一个简单的反斜杠,请使用'\\'
.
在 C 中,以下字符使用反斜杠表示:
一个普通的反斜杠会使系统感到困惑,因为它期望一个字符跟随它。因此,您需要“逃避”它。八进制/十六进制位模式起初可能看起来不太有用,但它们让您可以使用ANSI 转义码。
如果反斜杠后面的字符没有指定合法的转义序列,如上所示,结果是实现定义的,但反斜杠后面的字符通常按字面意思理解,就好像转义不存在一样。
如果您必须多次返回此类字符(“,',\,{,] ...等),您应该编写一个转义该字符的函数。我编写了一次该函数,它是:
function EscapeSpecialChars (_data) {
try {
if (!GUI_HELPER.NOU(_data)) {
return _data;
}
if (typeof (_data) != typeof (Array)) {
return _data;
}
while (_data.indexOf("
") > 0) {
_data = _data.replace("
", "");
}
while (_data.indexOf("\n") > 0) {
_data = _data.replace("\n", "\\n");
}
while (_data.indexOf("\r") > 0) {
_data = _data.replace("\r", "\\r");
}
while (_data.indexOf("\t") > 0) {
_data = _data.replace("\t", "\\t");
}
while (_data.indexOf("\b") > 0) {
_data = _data.replace("\b", "\\b");
}
while (_data.indexOf("\f") > 0) {
_data = _data.replace("\f", "\\f");
}
return _data;
} catch (err) {
alert(err);
}
},
然后像这样使用它:
return EscapeSpecialChars("\'"{[}]");
你应该改进这个功能。它对我有用,但它并没有转义所有特殊字符。