字符串变量不接受"?" 标志

Yte*_*Yte 3 javascript string variables sign protractor

我用以下代码制作代码

element(by.className('charge')).getText()
    .then(function(text){
        var blabla = "Is this my string?";

        expect(text.match(blabla)).toBe(true);
        console.log(text);
    });
Run Code Online (Sandbox Code Playgroud)

甚至我的控制台的输出等于我的blabla变量,我得到的结果:

预期['这是我的字符串']是真的.

没有任何"?" 标志.

这怎么可能?

Que*_*tin 5

论证match是:

正则表达式对象.如果传递了非RegExp对象obj,则使用新的RegExp(obj)将其隐式转换为RegExp.

所以不要传递一个字符串.明确地将它传递给一个正则表达式对象(因为这会将字符串转换为正则表达式并且必须处理两级语法以逃避).

正则表达式?视为一个特殊字符(在代码的上下文中,它表示" g应该出现0或1次".如果要匹配它们,则需要转义问号.

var blabla = /Is this my string\?/;
Run Code Online (Sandbox Code Playgroud)

也就是说,如果你想匹配整个字符串,那么测试就更容易了:

var blabla = "Is this my string?";
expect(text).toBe(blabla);
Run Code Online (Sandbox Code Playgroud)