gpt4 book ai didi

带有 1 个点和 2 位小数的正数的 JavaScript 正则表达式

转载 作者:行者123 更新时间:2023-11-29 17:52:08 27 4
gpt4 key购买 nike

我对正则表达式很陌生,并且我对正则表达式有疑问。

我只想允许用户输入正数,带或不带一个点,最多 2 位小数(也只能输入 1 位小数)。当用户在文本框中输入文本时,如果他们输入错误的格式,我想删除其他字符并将值替换为正确的格式。

有效示例:

123.12
2
56754
92929292929292.12
0.21
3.1
.90

无效示例:

12.1232
2.23332
e666.76
-1.23
-54.3242
3.98A
56B
BBB.12C
14.23.56
1..45

目前我找到了一个使用以下正则表达式的解决方案:

$("#SomeElement").keyup(function () {
this.value = this.value.replace(/(\.\d\d)\d+|([\d.]*)[^\d.]/, '$1$2')
});

这有两个问题

  1. 它允许我输入多个点。 (例如 123.89.80)
  2. 即使我输入字母“a”一次,它会过滤,但如果我按住键盘上的字母“a”,它仍然允许输入(例如AAAAAAAAA12),也许是因为“keyup”事件?

提前谢谢您。

最佳答案

我现在已经测试过它并且有效,请尝试一下:

$("#SomeElement").keyup(function () {
this.value = this.value.replace(/([^\d]*)(\d*(\.\d{0,2})?)(.*)/, '$2');
});

关于带有 1 个点和 2 位小数的正数的 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42549833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com