JavaScript endWith()

JavaScript endWith(),javascript,Javascript,我很难让下面的程序正常工作 if(str.endsWith('+') { alert("ends in plus sign") } 我如何避开加号?我已经尝试过/\+/,但它不起作用。JavaScript中没有endsWith方法,因此请改用: if (str.substr(-1) === "+") { alert("ends in plus sign") } JavaScript中没有endsWith方法,因此请改用: if (str.substr(-1) === "+") {

我很难让下面的程序正常工作

if(str.endsWith('+')
{
   alert("ends in plus sign")
}

我如何避开加号?我已经尝试过/\+/,但它不起作用。

JavaScript中没有
endsWith
方法,因此请改用:

if (str.substr(-1) === "+") {
  alert("ends in plus sign")
}

JavaScript中没有
endsWith
方法,因此请改用:

if (str.substr(-1) === "+") {
  alert("ends in plus sign")
}
使用RegExp:

    a = "csadda+"
    if (a.match(/.*\+$/)) {
        alert("Ends");
    }
使用RegExp:

    a = "csadda+"
    if (a.match(/.*\+$/)) {
        alert("Ends");
    }

Javascript字符串类型没有带函数的
endsWith,但是如果您愿意,可以提供一个:

if (!String.prototype.endsWith) {
    (function() {
        String.prototype.endsWith = String_endsWith;
        function String_endsWith(sub) {
            return this.length >= sub.length && this.substring(this.length - sub.length) == sub;
        }
    })();
}
或者,如果您不介意未命名的函数:

if (!String.prototype.endsWith) {
    String.prototype.endsWith = function(sub) {
        return this.length >= sub.length && this.substring(this.length - sub.length) == sub;
    };
}
无论哪种方式,您都可以执行以下操作:

if ("foo".endsWith("oo")) {
    // ...
}

Javascript字符串类型没有带
函数的
endsWith,但是如果您愿意,可以提供一个:

if (!String.prototype.endsWith) {
    (function() {
        String.prototype.endsWith = String_endsWith;
        function String_endsWith(sub) {
            return this.length >= sub.length && this.substring(this.length - sub.length) == sub;
        }
    })();
}
或者,如果您不介意未命名的函数:

if (!String.prototype.endsWith) {
    String.prototype.endsWith = function(sub) {
        return this.length >= sub.length && this.substring(this.length - sub.length) == sub;
    };
}
无论哪种方式,您都可以执行以下操作:

if ("foo".endsWith("oo")) {
    // ...
}
var s='告诉我更多:',s2='告诉我第2部分:'

s、 endsWith()//返回“:”

s、 endsWIth(“:”)//返回true,最后一个字符是“:”

s2.endsWIth(//\d:?/)//返回true。字符串以数字和(可能的)冒号结尾

var s='告诉我更多:',s2='告诉我第2部分:'

s、 endsWith()//返回“:”

s、 endsWIth(“:”)//返回true,最后一个字符是“:”


s2.endsWIth(//\d:?/)//返回true。字符串以数字和(可能的)冒号结尾

我想你应该澄清你的问题。1) if条件中缺少括号,2)String.endsWith或String.endWith不是标准的javascript函数;有一个你想知道的问题,我想你应该澄清你的问题。1) if条件中缺少括号,2)String.endsWith或String.endWith不是标准的javascript函数;有一个IE,你会想知道的。是的,很抱歉我应该在上面写,我已经添加了一个带有原型的endsWith。谢谢这个版本稍微快一点:
var i=this.length-sub.length;返回i>=0&&this.indexOf(sub,i)==i
。Prototype和其他一些人使用这种方法。@bobince:这一点很好,尽管我不得不说我无法想象现实世界的不同。是的,很抱歉我应该在上面写,我已经添加了一个带有Prototype的endsWith。谢谢这个版本稍微快一点:
var i=this.length-sub.length;返回i>=0&&this.indexOf(sub,i)==i
。Prototype和其他一些人使用这种方法。@bobince:这一点很好,尽管我不得不说我无法想象现实世界中的差异。负索引(
str.substr(-1)
)在JScript(IE)上不起作用。要成为可靠的跨浏览器,您需要
str.substring(str.length-desiredSub.length)
。但是,您可以使用
slice
,即使在IE中也可以使用负索引。负索引(
str.substr(-1)
)不适用于JScript(IE)。要成为可靠的跨浏览器,您需要
str.substring(str.length-desiredSub.length)
。但是,您可以使用
slice
,它甚至可以在IE中使用负索引。
'spoon!'。endswith('.')
-哎哟。小心地从字符串中创建正则表达式。另外,
endswith(“”)
由于重载条件,无法执行您可能期望的操作。
'spoon!'。endswith('.')
-哎哟。小心地从字符串中创建正则表达式。另外,
endswith(“”)
由于重载条件,不会执行您可能期望的操作。