首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配没有开始或结束的字符串

匹配没有开始或结束的字符串
EN

Stack Overflow用户
提问于 2012-10-16 16:49:49
回答 5查看 4.9K关注 0票数 1

如果字符串以“file/”开头和/或以".js“结尾,那么如何测试它?

示例:

  • test/test2/test.html -> true
  • files/test2/test.html -> false
  • test/test 2/test .js -> false
  • files/test2/test .js -> false

到目前为止,我有一个正则表达式:(^(?!files\/)).*?((?!\.js)$)

这适用于“file/”,但不适用于".js“。

编辑:对不起,误解了。只有当字符串不以“file/”开头且不以".js“结尾时,该字符串才应该匹配。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-16 17:19:24

最后一次阴性应该是在后面看,而不是在前面看,在测试的时候,您已经阅读了.js

代码语言:javascript
复制
^(?!files\/).*(?<!\.js)$
票数 4
EN

Stack Overflow用户

发布于 2012-10-16 17:19:34

这是一个能满足你需要的正则表达式。

代码语言:javascript
复制
(^(?!files\/)).*((?!\.js).{3}$)

您正在检查最后一个字符是否前面没有".js“,这始终是正确的。

票数 2
EN

Stack Overflow用户

发布于 2012-10-16 16:56:12

代码语言:javascript
复制
!/^files\/|\.js$/.test('files/test2/test.js') -> false
!/^files\/|\.js$/.test('files/test2/test.html') -> false
!/^files\/|\.js$/.test('test/test2/test.js') -> false
!/^files\/|\.js$/.test('test/test2/test.html') -> true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12919628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档