2

我正在建立一个项目组合的网站。我有一些分页可以让你进入下一个/上一个项目。

我想在进入项目时运行一些动画,而不是在项目之间浏览时。

我的计划是使用引用 URL 来了解您是否从另一个项目来到一个项目,因此不运行动画。但是我的正则表达式不好,所以我遇到了麻烦。

这是我想做的(伪代码)

var refURL = document.referrer;
if( refURL.search('http://www.example.com/work/digital/*') > 0 ) {
    // Do not run animation
} else {
    // Run animation
}

重要的是,“http://www.example.com/work/digital/”应该是 FALSE,但“http://www.example.com/work/digital/*”应该是 TRUE。

那么,RegEx 是做什么的呢?

谢谢!

4

4 回答 4

2

我想你正在寻找这个: -

var refURL = document.referrer;
if( refURL.search('http://www.example.com/work/digital/(.*)') > 0 ) {
    // Do not run animation
} else {
    // Run animation
}

以其他方式,您可以使用indexOf()

refURL.indexOf("http://www.example.com/work/digital/");

if(refURL.indexOf("http://www.example.com/work/digital/") > -1) {
       // Do Your Stuff
}
于 2012-10-08T18:04:53.043 回答
1

(.*)匹配 0 个或多个字符,而(.+)匹配 1 个或多个字符

JavaScript 中的 RegExp 也不需要括起来,所以只需键入

var exp = /pattern/modifiers

欲了解更多详情,请访问:http ://www.w3schools.com/jsref/jsref_obj_regexp.asp

我对您的问题的想法是尝试以下方法:

var refURL = document.referrer;
if (refURL.search(/^http:\/\/www.example.com\/work\/digital\/(.+)$/i) >= 0) {
    // Do not run the animation
} else {
    // Run the animation
}
于 2012-10-08T18:21:38.957 回答
1

可以使用正则表达式和 javascript

var searchin = item.toLowerCase();
var str = "*abc*";
str = str.replace(/[*]/g, ".*").toLowerCase().trim();
return new RegExp("^"+ str + "$").test(searchin);
于 2015-03-12T12:25:35.570 回答
0
var re = /^http:\/\/www.example.com\/work\/digital\/.+$/i;
console.log('http://www.example.com/work/digital/x'.search(re));
console.log('http://www.example.com/work/digital/'.search(re));
于 2012-10-08T18:06:12.367 回答