我正在尝试在茉莉花测试期间对字符串进行简单的 js 正则表达式模式匹配。此行按预期工作:
(/[^0-9\.]/g).test('$'); // true
但是,当正则表达式存储在变量中时,它会中断:
var NON_CURRENCY_VALUES = /[^0-9\.]/g;
NON_CURRENCY_VALUES.test('$'); // false
true
从控制台运行时,两者都按预期返回。但是,当从茉莉花测试内部运行时,它会中断。
我正在尝试在茉莉花测试期间对字符串进行简单的 js 正则表达式模式匹配。此行按预期工作:
(/[^0-9\.]/g).test('$'); // true
但是,当正则表达式存储在变量中时,它会中断:
var NON_CURRENCY_VALUES = /[^0-9\.]/g;
NON_CURRENCY_VALUES.test('$'); // false
true
从控制台运行时,两者都按预期返回。但是,当从茉莉花测试内部运行时,它会中断。
NON_CURRENCY_VALUES.test('$');
对我来说是真实的。
但是,要将正则表达式存储在变量中,您也可以使用 RegExp:
var NON_CURRENCY_VALUES = new RegExp("[^0-9\.]", "g");
在同一个全局正则表达式实例上多次调用的测试将超过上一次匹配。
您可以通过在尝试每次匹配之前进行设置来解决此问题,但要小心这种行为。RegExp.lastIndex = 0