Javascript 检查最后一个字符是否为点(.)

Javascript 检查最后一个字符是否为点(.),javascript,jquery,Javascript,Jquery,我需要检查输入值(type=“number”)的最后一个字符是否为点 尝试了这些,但不起作用: let amount = $("#amount").val(); let last_char = amount.slice(-1); if(last_char == ".") { return; } 还尝试了amount[amount.length-1]和charAt() p.S.输入类型为type=“number” 编辑: 所有答案都无效:您可以尝试

我需要检查输入值(
type=“number”
)的最后一个字符是否为点

尝试了这些,但不起作用:

let amount = $("#amount").val();
let last_char = amount.slice(-1);
if(last_char == ".")
{
    return;
}
还尝试了
amount[amount.length-1]
charAt()

p.S.输入类型为
type=“number”

编辑: 所有答案都无效:

您可以尝试以下方法:

let amount = $("#amount").val();
if(amount[amount.length-1] === "."){
   return true;
}
conststring='这是一个问题吗';
console.log(string.endsWith('.')您可以使用不同的方法,但性能不同

1.使用括号表示法:

var str = "Test";
var lastLetter = str[str.length - 1];
但不建议使用括号

2.charAt[index]:

var lastLetter = str.charAt(str.length - 1)
这是可读性和最快的。这是最推荐的方式

3.子字符串:

str.substring(str.length-1)

4.切片:

if(str.slice(-1)=== '.'){
return true
}
它比子串快一点,效率最高的一个

使用ES6:


您可以使用
str.endsWith(“t”)

这里的用例是什么?你可以使用正则表达式来检测句点,在这里寻找一个简洁的答案:@User863的可能重复。它不是重复的:这里的问题不是最后一个字符的匹配。问题是,在读取字段值时,最后带有一个点,它被解释为一个空字段。这就是为什么最后一个字符的检查不匹配的原因。这个问题将帮助您了解金额变量的值,例如:
1。
36。
它不会跳过这些。输入类型也是numberSo jquery.val()方法返回字符串,javascript将数字转换为字符串并忽略。最后因此,如果您在控制台中打印金额,它不会在最后显示点(.),请将输入类型更改为文本,然后您可以检查输入的末尾是否有点。在javascript中,数字不能以点结尾,javascript基本忽略。在数字的末尾,这不符合OP的要求question@adiga你能详细说明一下吗?这怎么回答不了他的问题。我列出了4种不同的方法及其示例和性能。该问题是由输入中的
type=“number”
引起的
.val()
将忽略尾随点。检查小提琴。