You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jest测试中正确检测URL中的非法符号(含斜杠)?

解决Jest检测URL非法符号的正则语法错误

你的问题出在两个核心点上:

  • 正则里的斜杠/没转义:它是正则表达式的分隔符,要匹配实际的/必须写成\/
  • 正则里|两边加了空格:这些空格会被当成要匹配的字符,导致没法正确检测不带空格的非法符号

另外,用正则字符集[]来包含所有非法符号会更简洁,不用写一堆冗余的|。

修正后的测试代码可以写成这样:

test('check url has no unwanted symbols', () => {
  const testOne = 'https://www.mytest&website.com';
  // 用字符集匹配任意非法符号
  expect(testOne).not.toMatch(/[&<>"'\/]/);
});

如果你想保留原有的|写法,修正后是这样:

test('check url has no unwanted symbols', () => {
  const testOne = 'https://www.mytest&website.com';
  expect(testOne).not.toMatch(/&|<|>|"|'|\/$/);
});

字符集写法的逻辑很直接:[&<>"'\/]表示匹配其中任何一个字符,只要URL里包含这些符号中的任意一个,not.toMatch就会触发测试失败,完全符合你的检测需求。

内容的提问来源于stack exchange,提问作者ericoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:34:37