检查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()
方法。