可能な重複:
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...
...
if (pathname.substring(0, 6) == "/sub/1") {
// ...
}
String.prototype.startsWith = function(needle)
{
return this.indexOf(needle) === 0;
};
あなたは string.match() とこれにも正規表現を使うことができます。
if(pathname.match(/^\/sub\/1/)) { // you need to escape the slashes
見つかった場合、string.match()
は一致する部分文字列の配列を返します。それ以外の場合はnullを返します。
もう少し再利用可能な機能:
beginsWith = function(needle, haystack){
return (haystack.substr(0, needle.length) == needle);
}
まず、文字列オブジェクトを拡張しましょう。プロトタイプを作成した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
}
JavaScript substring()
メソッドを見てください。