我在一些地方使用了一些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
答案 0 :(得分:7)
尝试传递文本框length
的{{1}},而不是value
的{{1}},
length
实现这一目标的最佳方法是,
selected elements
以负数传递起始值将从后面删除字符串。