gpt4 book ai didi

javascript - 使用转义正则表达式特殊字符进行测试时字符串相等性失败

转载 作者:行者123 更新时间:2023-11-28 21:23:08 25 4
gpt4 key购买 nike

我正在测试一个函数,它返回字符串特殊字符的正则表达式转义版本,因此在测试中我正在测试它是否等于转义字符串,但它失败了说

Expected value to match:
"4**2"
Received:
"4\\*\\*2"

这是我写的测试:

describe("escapeRegExp", () => {
// required for quotes test
test("Escapes all RegExp characters", () => {
expect(escapeRegExp("4**2")).toMatch("4\*\*2");});

其中 escapeRegExp 函数返回 "4\*\*2" 但它期望它是 "4**2"

但是当我使用

expect(escapeRegExp("4**2")).toMatchSnapshot("4\*\*2"); 它工作正常。

知道为什么在使用 .toBetoEqual() 检查它时会失败吗??

我是否必须添加任何其他字段/参数才能使其与 toEqualtoMatchSnapshot 一起使用?

最佳答案

"4\*\*2" 是一个完全不包含反斜杠的字符串,4**2(因为 \** — 因为 \* 不是字符串文字中定义的转义序列,并且 * 不需要在字符串中转义文字,\ 被忽略)。您的意思是 "4\\*\\*2",即字符串 4\*\*2。例如:

describe("escapeRegExp", () => {
// required for quotes test
test("Escapes all RegExp characters", () => {
expect(escapeRegExp("4**2")).toMatch("4\\*\\*2");});

请注意,您传递的字符串 toMatchSnapshot是一个可选的快照名称。您不使用 toMatchSnapshot 来测试文字值(您使用 toMatch)。有关快照测试的更多信息 here .

关于javascript - 使用转义正则表达式特殊字符进行测试时字符串相等性失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com