假设您有一个域http://www.somedomainname.com
有些代码应该在所有页面上运行,除了some-directory中更深层次的内容:http://www.somedomainname.com/some-directory/anything
我试过了:
(function($) {
$(document).ready(function() {
var isBad = !!window.location.pathname.match(/^\/some-directory/*);
if ( !isBad ) {
// RUN CODE
}
});
}(jQuery));
Chrome控制台告诉我,我的正则表达式很糟糕。我使用*
作为通配符进行了赌博,但它并没有像我希望的那样正常工作。
答案 0 :(得分:1)
如果some-directory始终是路径名中的第一个东西,那么你真的不需要使用通配符,但是你应该处理可能缺少的尾随斜杠(通常会提供像index.html这样的文件):
var testing = "";
console.log(testing = "/some-directory", testing.match(/^\/some-directory[\/]?/));
console.log(testing = "/some-directory/", testing.match(/^\/some-directory[\/]?/));
console.log(testing = "/some-directory/something", testing.match(/^\/some-directory[\/]?/));
console.log(testing = "/wont-find/some-directory", testing.match(/^\/some-directory[\/]?/));

如果您需要在路径中的任何位置找到该目录名称,可以在开头添加通配符:
var testing = "";
console.log(testing = "/some-other-dir/some-directory", testing.match(/^.*\/some-directory[\/]?/));
console.log(testing = "/some-other-dir/some-directory/", testing.match(/^.*\/some-directory[\/]?/));
console.log(testing = "/some-other-dir/some-directory/something", testing.match(/^.*\/some-directory[\/]?/));

但是这两个例子都需要前导斜杠。
答案 1 :(得分:0)