Javascript Regex负面lookbehind替代品

时间:2018-02-10 23:05:18

标签: javascript regex webpack

看起来这不是关于后视的第一个问题,但我找不到答案。

Javascript没有(正|负)后瞻性请求。

我需要一个与* .scss文件名匹配的正则表达式,但与* .h.scss这样的名称不匹配。 后视请求看起来像:

/(?<!(\.h))\.scss$/

我怎样才能在javascript中执行此操作? 我需要这个正则表达式用于webpack规则“test”参数,因此只需要javascript regex。

2 个答案:

答案 0 :(得分:3)

您可以使用

/^(?!.*\.h\.scss$).*\.scss$/

请参阅regex demo

<强>详情

  • ^ - 字符串锚的开始
  • (?!.*\.h\.scss$) - 如果字符串以.h.scss结尾
  • ,则前瞻会导致匹配失败
  • .* - 尽可能多的0个字符
  • \.scss - 位于...
  • .scss子字符串
  • $ - 字符串的结尾。

答案 1 :(得分:3)

您可以列出与'不匹配的所有可能子模式并构建替换:

json_encode