可能重复:
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...
...
答案 0 :(得分:363)
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()
方法。