13

如果我将字符串加载到变量中,确定字符串是否以“/”正斜杠结尾的合适方法是什么?

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

5 回答 5

20

正则表达式有效,但如果你想避免整个神秘的语法,这里应该工作:javascript/jquery add trailing slash to url (if not present)

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] === "/";

编辑:请记住,您需要首先检查字符串是否为空,以免引发异常。

于 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 回答