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
我有一个字符串让我们说:
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