检查string是从什么开始的?

可能重复:
Javascript StartsWith

我知道我可以像^ =一样来查看一个id是否以一些东西开头,我尝试过使用它,但是它不起作用…基本上,我正在检索这个url,并且想要设置一个类对于以某种方式启动的path名的元素…

所以,

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

我想确保每个以/ sub / 1开头的path,我都可以为一个元素设置一个类。

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

使用stringObject.substring

 if (pathname.substring(0, 6) == "/sub/1") { // ... } 
 String.prototype.startsWith = function(needle) { return(this.indexOf(needle) == 0); }; 

你也可以使用string.match()和一个正则expression式:

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

如果findstring.match()将返回一个匹配子串的数组,否则返回null

多一点可重用的function:

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

首先,让我们扩展string对象。 感谢里卡多佩雷斯的原型,我认为使用variables“string”比“针”更好的可读性。

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

然后你就这样使用它。 警告! 使代码非常可读。

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

看看JavaScript的substring()方法。