Javascript - 如何检查字符串是否包含转义序列

Javascript - How to check if a string contains escape sequence

我有一个字符串让我们说:

let b = "\x41";

如果 b 包含 \x,我如何检查 javascript?

您无法取回字符串或搜索 \x,因为它是 escape sequence for

\xXX …where XX is exactly 2 hex digits in the range 00–FF; e.g., \x0A is the same as \n (LINE FEED); \x21 is "!"

Unicode code point between U+0000 and U+00FF (the Basic Latin and Latin-1 Supplement blocks; equivalent to ISO-8859-1)

结果是一个没有转义序列的普通字符串。

let b = "\x41";

console.log(b);
console.log(JSON.stringify(b));

要测试转义序列,您需要有原始字符串

我想知道为什么我在这里没有得到 0 而是 1

const b = String.raw`\x41`;

console.log(JSON.stringify(b),"\\x",JSON.stringify(b).indexOf("\\x"))

\x41 当我在浏览器中测试这段代码时,似乎是字母 A 。您无法检查 b 是否有转义序列,因为 JavaScript 会自动将 \x41 变成字母 A。但是,您可以检查 b 是否有字母 A.

let b = "\x41";
b.indexOf("A") != -1 // Check if b contains 'A'
// Returns true
b.indexOf("\x41") != -1 // Check if b contains escape sequence '\x41'
// Returns true
"A".indexOf("\x41") != -1 // Check if the string 'A' contains the escape sequence '\x41'
// Returns true