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である必要があるということです。

それで、それを行うための正規表現は何ですか?

ありがとう!

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 に答える