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

时间:2009-11-19 23:12:32

标签: javascript string match

  

可能重复:
  Javascript StartsWith

我知道我可以这样做^ =看看id是否以某种东西开头,我尝试使用它,但它不起作用......基本上,我正在检索网址,我想要为以某种方式开始的路径名设置一个类......

所以,

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

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

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

6 个答案:

答案 0 :(得分:363)

使用stringObject.substring

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

答案 1 :(得分:181)

String.prototype.startsWith = function(needle)
{
    return this.indexOf(needle) === 0;
};

答案 2 :(得分:83)

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

if(pathname.match(/^\/sub\/1/)) { // you need to escape the slashes
如果找到,

string.match()将返回匹配的子字符串数组,否则 null

答案 3 :(得分:37)

更可重复使用的功能:

beginsWith = function(needle, haystack){
    return (haystack.substr(0, needle.length) == needle);
}

答案 4 :(得分:22)

首先,让我们扩展字符串对象。感谢里卡多佩雷斯的原型,我认为使用变量'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
}

答案 5 :(得分:2)

查看JavaScript substring()方法。