我怎么能这样做呢:

<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>

当前回答

regex方式:

var matches = !!location.href.match(/franky/); //a boolean value now

或者在一个简单的陈述句中你可以用:

if (location.href.match(/franky/)) {

我用这个测试网站是在本地运行还是在服务器上运行:

location.href.match(/(192.168|localhost).*:1337/)

它检查href是否包含192.168或localhost AND,后面跟着:1337。

如您所见,当条件变得有点棘手时,使用regex比其他解决方案更有优势。

其他回答

窗口位置是一个包含多个方法和道具的对象,其中一些是与URL相关的字符串,这样你就可以安全地搜索目标字符串:

const href = location.href;
// "https://stackoverflow.com/questions/4597050/how-to-check-if-the-url-contains-a-given-string"

// another option 
const pathname = location.pathname;
// "/questions/4597050/how-to-check-if-the-url-contains-a-given-string"

// search for string safely
pathname.includes("questions"); // true
href.includes("questions"); // true

位置对象

变得更容易

<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>

你可以像这样使用indexOf:

if(window.location.href.indexOf("franky") != -1){....}

还要注意字符串的href,否则你会这样做:

if(window.location.toString().indexOf("franky") != -1){....}

regex方式:

var matches = !!location.href.match(/franky/); //a boolean value now

或者在一个简单的陈述句中你可以用:

if (location.href.match(/franky/)) {

我用这个测试网站是在本地运行还是在服务器上运行:

location.href.match(/(192.168|localhost).*:1337/)

它检查href是否包含192.168或localhost AND,后面跟着:1337。

如您所见,当条件变得有点棘手时,使用regex比其他解决方案更有优势。

如果将字符串转换为小写或大写,这将是一个很好的实践,因为indexof()方法是区分大小写的。

这将是如果你的搜索不区分大小写,你可以简单地使用indexOf()方法,而不将原始字符串转换为小写或大写:

var string= location.href;
var convertedString= string.toLowerCase();

if(convertedString.indexOf('franky') != -1)
{
    alert("url has franky");
}
else
{
    alert("url has no franky");
}