繁体   English   中英

如何正确检测Node.js中JSON对象中的转义字符?

[英]How do you correctly detect escape characters in a JSON object in Node.js?

我需要在API调用中检测转义字符。 我在下面编写了一个函数,该函数采用一个特定值,并使用正则表达式验证它是否包含转义字符。

功能:

var checkEscapeChars = function (value){
var containsEscapeChars = /\\[ubfnrtv0'"\\]/g.test(value);
return containsEscapeChars; // returns true when contains escape chars
};

我的理解是,如果值是'\\ f'(换行),则该函数应返回true-但不是,它返回false。 我相信这是因为正则表达式测试器对待'\\ f'和对'\\ f'的解释不同。

我将如何检测转义字符? (我在Node 4.4.7中运行(并且我无法更新))。

谢谢

编辑:我已经建立了一个API,并且不能接受转义字符,因为它们不能被写入我的数据库。 我无法对系统进行任何其他更改,必须正确评估字符串是否包含转义字符。

我输入的是'\\ f',它转换为换行符。 因此,该函数应返回:true(字符串包含转义字符),但不是。 返回false。

您必须通过以下方式构建正则表达式:

/[\\b\\f\\n\\r\\t\\v\\0]/

演示版

您的正则表达式匹配\\u\u003c/code> , \\b\\f ,...

演示版

附加说明
\\ u不是转义字符。 这是一个清单:

\\ b:退格键(U + 0008 BACKSPACE)
\\ f:换页(U + 000C FORM FEED)
\\ n:换行符(U + 000A LINE FEED)
\\ r:回车符(U + 000D回车符)
\\ t:水平制表符(U + 0009 CHARACTER TABULATION)
\\ v:垂直制表符(U + 000B LINE TABULATION)
\\ 0:空字符(U + 0000 NULL)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM