使用变量vs获取输入值时substr()的不同结果

时间:2016-03-23 20:03:09

标签: javascript jquery substring substr

我在一些地方使用了一些javascript来检查电子邮件地址的最后3个字符。我不明白的是,为什么当我获取set变量的子串与获取输入值时得到不同的结果。

以下代码会提醒值:“com”

var email = "blah@test.com";
alert(email.toLowerCase().substr(email.length - 3, 3));

但是,此代码用于获取输入值警报值:“om”

alert($("#email").val().toLowerCase().substr($("#email").length - 3, 3));

有人可以向我解释为什么上面两行代码有不同的结果吗?

这是JSFIDDLE

1 个答案:

答案 0 :(得分:7)

尝试传递文本框length的{​​{1}},而不是value的{​​{1}},

length

实现这一目标的最佳方法是,

selected elements

以负数传递起始值将从后面删除字符串。

DEMO