我想知道是否可能返回“怪异”字符,或者更重要的是对语言重要的字符
例如: \ ; “
我想知道,因为我需要通过一个检查文本键的unicode值的函数返回它们,然后通过它的数字返回字符,我也需要它们。
我得到一个356 |错误:错过终止'字符
第356行看起来如下
return '\';
想法?
答案 0 :(得分:5)
反斜杠是特殊字符的转义符。如果你想要一个文字反斜杠,你必须用另一个反斜杠来逃避它。尝试:
return '\\';
答案 1 :(得分:4)
这里唯一的问题是反斜杠用于转义文字中的字符。例如,\n
是一个新行,\t
是一个水平制表符。在您的情况下,编译器看到\'
并认为您的意思是'
字符(这样您就可以拥有'
字符,如下所示:'\''
)。你只需要逃避反斜杠:
return '\\';
尽管这看起来像一个字符文字,里面有两个字符,但事实并非如此。 \\
是一个表示单个反斜杠的转义序列。
同样,要返回'
,您可以这样做:
return '\'';
表7给出了可用转义序列的列表:
您可以使用包含执行字符集中任何字符的字符文字,结果char
将包含该字符的值。但是,如果该值不适合char
,则它将具有实现定义的值。
答案 2 :(得分:1)
任何角色都可以退回。
然而对于其中一些人,你必须使用backslash
:\
来逃避它。
因此,对于返回反斜杠,您必须返回:
return '\\';
答案 3 :(得分:0)
使用'\\'
来获得简单的反斜杠。
在C中,使用反斜杠表示以下字符:
普通的反斜杠会混淆系统,因为它希望字符跟随它。因此,你需要“逃避”它。八进制/十六进制位模式一开始可能看起来不太有用,但它们允许您使用ANSI escape codes。
如果反斜杠后面的字符没有指定合法的转义序列,如上所示,结果是实现定义的,但通常字面意思是反斜杠后面的字符,就好像转义不存在一样。
答案 4 :(得分:0)
如果你必须多次返回这些字符(“,',\,{,]等等),你应该编写一个逃避该字符的函数。我写了一次该函数,它是:
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("\'"{[}]");
你应该改进这个功能。它对我有用,但并没有逃脱所有特殊角色。