javascript - 正则表达式 - 允许数字 0-9、Backsapce 和 1 点 Javascript

标签 javascript regex

我有一个作用于 keydown 事件的函数,我希望它只允许数字、退格键和 1 个点。我无法让它发挥作用。这是我尝试过的:

$('#input[type="number"]').keydown(function(e) {

            this.value = this.value.toLowerCase();
            var regex = new RegExp("^[0-9.,\b]+$");
            var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
            if (!regex.test(key)) {
                console.log('stop now')
                e.preventDefault();
                return false;
            }
});

它仍然阻止点,但允许数字。我认为我的正则表达式是错误的,需要调整。

注释消失了,但一些用户建议这可能与 ., 的转义有关?有什么想法吗?

最佳答案

keydown 事件中使用 keypress 。对于 keydown 事件,某些按键会发送不同的字符代码。点就是其中之一,发送代码 190 而不是 ASCII 46。你可以玩一下here .

关于javascript - 正则表达式 - 允许数字 0-9、Backsapce 和 1 点 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156233/

相关文章:

map 内的Javascript Fetch

javascript - 旋转一个句子,每个词都以递增的倾斜度旋转

javascript - Bootstrap 调整大小和自动折叠

python - 如何在python中通过正则表达式获取dict值

javascript - 与支持多个结果和取消的 promises/deferred 类似的模式

javascript - bxslider 移动第一张幻灯片

python - 匹配由另一个正则表达式分隔的所有内容?

c++ - 使用 boost::regex 更改文件中数据的格式

java - 正则表达式:匹配不包含特定文本的 HTML 元素

regex - 正则表达式 - 搜索直到出现特定字符串