【发布时间】:2021-11-26 19:55:48
【问题描述】:
我想将某些文件类型(例如“.txt”)与不以特定子字符串结尾的非空根名称(例如“-bad”)进行匹配。有了负面的后向支持,解决方案很简单:
/.(?<!-bad)\.txt$/
Safari,然而,仍然不支持负面的后视。啊。我怎样才能使用负前瞻来获得相同的结果?我想用一个正则表达式来做到这一点。请不要提供任何非正则表达式或多步解决方案。
下面的测试代码表明我已经接近了,但一项测试仍然失败。 ????
const regex = /.((?!-bad).{4})\.txt$/;
const tests = [
['this-file-bad.txt', false],
['this-file.txt', true],
['.txt', false],
['f.txt', true]
];
const results = tests.map(([input, expected]) => ((regex.test(input) === expected) ? '✅' : '❌') + input);
console.log(results.join('\n'));
【问题讨论】:
标签: javascript regex safari regex-lookarounds regex-negation