如何去掉双引号?

3
我正在尝试传递。
"HO_1,HO_2"

从黄瓜功能文件中读取值。

我正在尝试将该值传递到一个 Chai include 调用中,因此它需要采用以下格式:

"HO_1", "HO_2"

我目前正在使用分割和连接的方法来创建如下格式:

const splitE = (('"'+(eventTag.split(",")).join('", "')+'"'));

并且这个console.log输出:

"HO_1", "HO_2"

但是当我尝试将splitE传递给chai函数时:

expect(estring).to.include(splitE);

它试图将变量作为字符串传递,但实际上被传递进来的是

expect(estring).to.include(""HO_1", "HO_2"");

而且它不起作用,我如何去掉我传递的内容周围的引号?
2个回答

0

仅切片 slice,但不包括引号如何?

expect(estring).to.include(splitE.slice(1, -1));

0

实际上,您正在尝试的操作在Chai框架中尚不受支持,因为.include()方法仅接受一个value,因此您的两个values将被视为一个string

您可以使用.satisfy()方法来检查两个substrings

expect(estring).to.satisfy(estring =>
  eventTag.split(",").some(b => estring.includes(b))
);

你可以查看 Github 上的 检查字符串是否包含多个其他字符串 问题以了解更多详情。

Chai要求输入为带引号和逗号分隔的列表,"a","b",所以我需要保留引号,只是不将双引号传递给函数。 - Karl
@Karl 在这种情况下,您需要更改代码以匹配两个“子字符串”,例如,您可以使用.satisfy()。我更新了我的答案,并针对此情况提出了一个缺点。 - cнŝdk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接