13

文字列を変数にロードしている場合、文字列が「/」スラッシュで終わるかどうかを判断するために使用する適切な方法は何ですか?

var myString = jQuery("#myAnchorElement").attr("href");
4

5 に答える 5

20

正規表現は機能しますが、その不可解な構文全体を避けたい場合は、次のように機能する必要があります。javascript / jqueryの末尾にスラッシュを追加します(存在しない場合) 。

var lastChar = url.substr(-1); // Selects the last character
if (lastChar !== '/') {         // If the last character is not a slash
   ...
}
于 2013-02-08T16:19:46.267 に答える
3

使用regexして実行する:

myString.match(/\/$/)
于 2013-02-08T16:17:58.040 に答える
1

簡単な解決策は、次の方法で最後の文字を確認することです。

var endsInForwardSlash = myString[myString.length - 1] === "/";

編集:例外をスローしないようにするには、最初に文字列がnullでないことを確認する必要があることに注意してください。

于 2013-02-08T16:19:04.050 に答える
1

substringとlastIndexOfを使用できます。

var value = url.substring(url.lastIndexOf('/') + 1);
于 2013-02-08T16:19:34.567 に答える
1

そのためにJQueryは必要ありません。

function endsWith(s,c){
    if(typeof s === "undefined") return false;
    if(typeof c === "undefined") return false;

    if(c.length === 0) return true;
    if(s.length === 0) return false;
    return (s.slice(-1) === c);
}

endsWith('test','/'); //false
endsWith('test',''); // true
endsWith('test/','/'); //true

プロトタイプを書くこともできます

String.prototype.endsWith = function(pattern) {
    if(typeof pattern === "undefined") return false;
    if(pattern.length === 0) return true;
    if(this.length === 0) return false;
    return (this.slice(-1) === pattern);
};

"test/".endsWith('/'); //true
于 2013-02-08T16:26:19.957 に答える