检查字符串是否以某物开头?

我知道我可以像^=一样来查看id是否以某个东西开头,并且我尝试为此使用它,但它不起作用。基本上,我正在检索一个URL,我想为一个元素设置一个类,为以某种方式开始的路径名。

例子:

var pathname = window.location.pathname;  //gives me /sub/1/train/yonks/459087

我想确保对于以/sub/1开头的每个路径,都可以为一个元素设置一个类:

if (pathname ^= '/sub/1') {  //this didn't work...
...
375537 次浏览

看看JavaScript的substring()方法。

使用stringObject.substring

if (pathname.substring(0, 6) == "/sub/1") {
// ...
}

你也可以使用string.match ()和正则表达式:

if(pathname.match(/^\/sub\/1/)) { // you need to escape the slashes

如果找到,string.match()将返回一个匹配子字符串的数组,否则返回

一个更可重用的函数:

beginsWith = function(needle, haystack){
return (haystack.substr(0, needle.length) == needle);
}
String.prototype.startsWith = function(needle)
{
return this.indexOf(needle) === 0;
};

首先,让我们扩展string对象。感谢Ricardo Peres的原型,我认为在使其更具可读性的上下文中,使用变量“string”比“needle”更好。

String.prototype.beginsWith = function (string) {
return(this.indexOf(string) === 0);
};

然后像这样使用。谨慎!使代码极具可读性。

var pathname = window.location.pathname;
if (pathname.beginsWith('/sub/1')) {
// Do stuff here
}