[英]how can get only numbers from the input
I have on keyup and mask for phone numbers, I need to get only digits, not symbols on mask, but it is not working, please let me know my mistake.我有电话号码的键盘和掩码,我只需要得到数字,而不是掩码上的符号,但它不起作用,请告诉我我的错误。
$(document).on('keyup', '#search', function(){
sd=parseInt(document.getElementById('search').value);
alert(sd);
'$(window).load(function()
{
var phones = [{ "mask": "(###) ###-####"}, { "mask": "(###) ###-####"}];
$('#search').inputmask({
mask: phones,
greedy: true,
definitions: { '#': { validator: "[0-9]", cardinality: 1}} });
});'
I might recommend doing a replace
with a regular expression to remove all non-digits:我可能建议用正则表达式
replace
以删除所有非数字:
const sd = document.getElementById('search').value.replace(/\D/g,''); console.log(sd);
<input id="search" value="(123) 456 - 7890" />
You can use the unmask
method provided by the inputmask library:您可以使用 inputmask 库提供的
unmask
方法:
const phones = [{ "mask": "(###) ###-####"}, { "mask": "(###) ###-####"}];
const mask = {
mask: phones,
greedy: true,
definitions: { '#': { validator: "[0-9]", cardinality: 1}}
}
$(document).on('keyup', '#search', function(){
let value = document.getElementById('search').value;
console.log( Inputmask.unmask( value, mask ) );
});
$('#search').inputmask( mask );
With jQuery you can prevent inputs by returning false on the keydown
event.使用 jQuery,您可以通过在
keydown
事件上返回 false 来阻止输入。
//48-57 are number keys, 96-105 are numpad keys, the rest are control keys [backspace, tab, enter, left, up , right, down, delete]
$('input').on('keydown', e => (e.keyCode >= 48 && e.keyCode <=57) || (e.keyCode >= 96 && e.keyCode <=105) || [8,9,13,37,38,39,40,46].includes(e.keyCode));
https://jsfiddle.net/un18rw96/ https://jsfiddle.net/un18rw96/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.