どうすればこのようなことができますか。
<script type="text/javascript">
$(document).ready(function () {
if(window.location.contains("franky")) // This doesn't work, any suggestions?
{
alert("your url contains the name franky");
}
});
</script>
Hrefプロパティを追加し、indexOf
の代わりにcontains
をチェックする必要があります。
<script type="text/javascript">
$(document).ready(function () {
if(window.location.href.indexOf("franky") > -1) {
alert("your url contains the name franky");
}
});
</script>
if (window.location.href.indexOf("franky") != -1)
それをするでしょう。あるいは、正規表現を使うこともできます。
if (/franky/.test(window.location.href))
そのようです:
<script type="text/javascript">
$(document).ready(function () {
if(window.location.href.indexOf("cart") > -1)
{
alert("your url contains the name franky");
}
});
</script>
このように indexOf
を使用します。
if(window.location.href.indexOf("franky") != -1){....}
文字列にhref
が追加されていることにも注意してください。
if(window.location.toString().indexOf("franky") != -1){....}
window.location
はStringではありませんが、toString()
メソッドを持ちます。だからあなたはこのようにすることができます:
(''+window.location).includes("franky")
または
window.location.toString().includes("franky")
Locationオブジェクトには、現在のURLを返すtoStringメソッドがあります。 window.locationに文字列を代入することもできます。これは、ほとんどの場合それが文字列であるかのようにwindow.locationを操作できることを意味します。ときには、たとえばStringメソッドを呼び出す必要があるときなど、明示的にtoStringを呼び出す必要があります。
正規表現の方法:
var matches = !!location.href.match(/franky/); //a boolean value now
あるいは簡単なステートメントであなたは使うことができます:
if (location.href.match(/franky/)) {
これを使って、Webサイトがローカルで動作しているのか、サーバーで動作しているのかをテストします。
location.href.match(/(192.168|localhost).*:1337/)
これは、 href に192.168
またはlocalhost
ANDが含まれているかどうかを確認し、その後に:1337
が続くかどうかを確認します。
ご覧のとおり、条件が少し複雑になる場合は、正規表現を使用すると他のソリューションよりも有利になります。
これを試してください、それはより短く、window.location.href
とまったく同じように機能します。
if (document.URL.indexOf("franky") > -1) { ... }
あなたが以前のURLをチェックしたい場合も:
if (document.referrer.indexOf("franky") > -1) { ... }
document.URL
はあなたにURL
を与えるべきです
if(document.URL.indexOf("searchtext") != -1) {
//found
} else {
//nope
}
これを試して:
<script type="text/javascript">
$(document).ready
(
function ()
{
var regExp = /franky/g;
var testString = "something.com/frankyssssddsdfjsdflk?franky";//Inyour case it would be window.location;
if(regExp.test(testString)) // This doesn't work, any suggestions.
{
alert("your url contains the name franky");
}
}
);
</script>
IndexOfを試す
if (foo.indexOf("franky") >= 0)
{
...
}
検索を試すこともできます(正規表現用)
if (foo.search("franky") >= 0)
{
...
}
より簡単に
<script type="text/javascript">
$(document).ready(function () {
var url = window.location.href;
if(url.includes('franky')) //includes() method determines whether a string contains specified string.
{
alert("url contains franky");
}
});
</script>
私はboolean
を作成してからそれを論理的なif
で使用するのが好きです。
//kick unvalidated users to the login page
var onLoginPage = (window.location.href.indexOf("login") > -1);
if (!onLoginPage) {
console.log('redirected to login page');
window.location = "/login";
} else {
console.log('already on the login page');
}
JavascriptでURLを取得するには、Window.location.hrefを使用してください。これはブラウザの現在のURLの場所を教えてくれるプロパティです。プロパティを別のものに設定すると、ページがリダイレクトされます。
if (window.location.href.indexOf('franky') > -1) {
alert("your url contains the name franky");
}
あなたのjsファイルに入れる
var url = window.location.href;
console.log(url);
console.log(~url.indexOf("#product-consulation"));
if (~url.indexOf("#product-consulation")) {
console.log('YES');
// $('html, body').animate({
// scrollTop: $('#header').offset().top - 80
// }, 1000);
} else {
console.log('NOPE');
}
正規表現は、Wordの境界\b
または同様のデバイスのため、多くの人にとってより最適なものになるでしょう。 0-9
、a-z
、A-Z
、_
のいずれかが その側 の次の一致の場合、または英数字が行またはストリングの最後または先頭に接続されている場合は、ワード境界が発生します。
if (location.href.match(/(?:\b|_)franky(?:\b|_)))
if(window.location.href.indexOf("sam")
を使うと、とりわけflotsam
とsame
にマッチします。 tom
は、正規表現なしで、トマトと明日に一致します。
大文字と小文字を区別するのはi
を削除するのと同じくらい簡単です。
さらに、他のフィルタを追加するのと同じくらい簡単です。
if (location.href.match(/(?:\b|_)(?:franky|bob|billy|john|steve)(?:\b|_)/i))
(?:\b|_)
について話しましょう。通常、RegExは_
をWord character
として定義しているため、Wordの境界は発生しません。これに対処するためにこの(?:\b|_)
を使用します。文字列の両側に\b
または_
があるかどうかを確認します。
他の言語では、
if (location.href.match(/([^\wxxx]|^)(?:franky|bob|billy|john|steve)([^\wxxx]|$)/i))
//where xxx is a character representation (range or literal) of your language's alphanumeric characters.
これのすべては言うより簡単です
var x = location.href // just used to shorten the code
x.indexOf("-sam-") || x.indexOf("-sam.") || x.indexOf(" sam,") || x.indexOf("/sam")...
// and other comparisons to see if the url ends with it
// more for other filters like frank and billy
他の言語の正規表現は\p{L}
をサポートしていますが、javascriptはサポートしていないため、外国語の文字を検出する作業がはるかに簡単になります。 [^\p{L}](filters|in|any|alphabet)[^\p{L}]
のようなもの
このスクリプトがあるとします。
<div>
<p id="response"><p>
<script>
var query = document.location.href.substring(document.location.href.indexOf("?") + 1);
var text_input = query.split("&")[0].split("=")[1];
document.getElementById('response').innerHTML=text_input;
</script> </div>
URLの形式はwww.localhost.com/web_form_response.html?text_input=stack&over=flow
です。
<p id="response">
に書かれたテキストはstack
になります