如何允许输入数字类型有空格和逗号

时间:2017-08-21 16:02:05

标签: javascript html input

如何允许input type="number"接受1, 2, 3, 55之类的内容,而不仅仅是带有小数的常规number

我尝试使用模式,但似乎没有效果,因为它仍然只接受数字和小数。

Example:
<input type="number" pattern="[0-9]+([\.,][0-9]+)?">

Desired:
<input type="text" pattern="[0-9]+([\.,][0-9]+)?" value="1, 2, 3, 4">

<input type="number" pattern="[0-9]+([\.,][0-9]+)?">

3 个答案:

答案 0 :(得分:2)

你应该使用type = text并使用js验证/格式化它。

$('input').on('change, keyup', function() {
    var currentInput = $(this).val();
    var fixedInput = currentInput.replace(/[A-Za-z!@#$%^&*()]/g, '');
    $(this).val(fixedInput);
    console.log(fixedInput);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text"/>

答案 1 :(得分:2)

您可以使用常规<input type="text"/>并在其后面加上一些正则表达式:

var input = document.querySelector('input');
input.addEventListener('input', function() {
  this.value = this.value.replace(/[^0-9 \,]/, '');
});
<input type="text"/>

正则表达式含义:

[^0-9 \,]    # any character that's not a digit, a space, or a comma

注意:pattern属性仅阻止表单提交,不会将字符输入限制在输入中。

答案 2 :(得分:0)

看看这是否可以帮到你。模式是正则表达式。查看正则表达式以获得更多自定义。

FCM token for app1: fwjJVG2-T9Q:APA91bG8xVN9S-F4aERzh0GtcLWAqOy3dBPed0vPUE4AS_Jt4rau1bmmhvGPjfQgwBt9krdI9e91GaA04x4PXm4eW9PsG52P-Vt8yeo2woWGl3CP6zE09cT8ouRmOoWBhFfZkLbzbGul
FCM token for app2: fwjJVG2-T9Q:APA91bGggGD0YBZO5tpDqwdYKEbGX4vTSXnhwFoc_lrHbLIIWg1WE4RjTS8NYZ--TX-GkoypuEM4Plb4h41mVcP0uYjvo2dGDO3SNyuo3GrsBRb4ISzoieC_bcJZs5MibLKrET97f49j