javascript检查特定字符
我正在尝试用javascript创建一个计时器,我已经让它工作了,但是我现在正在尝试验证用户的输入。目前,只要inputbox不为空,它将接受任何内容。但我想只允许数字、冒号(:)和句点(.),我已经看了几个问题,但大多数似乎只是检查所有文本字符 以下是工作代码: 或 HTML:javascript检查特定字符,javascript,jquery,Javascript,Jquery,我正在尝试用javascript创建一个计时器,我已经让它工作了,但是我现在正在尝试验证用户的输入。目前,只要inputbox不为空,它将接受任何内容。但我想只允许数字、冒号(:)和句点(.),我已经看了几个问题,但大多数似乎只是检查所有文本字符 以下是工作代码: 或 HTML: 请输入时间量 0:00 启动计时器 取消计时器 JS: $(文档).ready(函数(){ $(“#取消按钮”).hide(); }); $('.click')。单击(函数(){ var conts=$(“#请求”
请输入时间量
0:00
启动计时器
取消计时器
JS:
$(文档).ready(函数(){
$(“#取消按钮”).hide();
});
$('.click')。单击(函数(){
var conts=$(“#请求”).val();
如果($('#请求').val()=“”){
返回;
}
$('.container').hide();
$(“#取消按钮”).fadeIn('slow');
var rawamunit=$(“#请求”).val();
var cleanmount=rawamunit.split(“:”);
var totalAmount=parseInt(cleanAmount[0]| 0)*60+parseInt(cleanAmount[1]| 0);
$(“#请求”).val(“”);
变量循环,函数=函数(){
总额--;
如果(总金额==0){
清除间隔(循环);
$(“#取消按钮”).hide();
$('.container').fadeIn('slow');
}
var minutes=parseInt(总金额/60);
var seconds=parseInt(总量%60);
如果(秒<10)
秒=“0”+秒;
$(“#计时器”).text(分钟+”:“+秒);
$(“#取消按钮”)。单击(函数(){
总额=1
});
};
var循环=设置间隔(函数,1000);
})
在您的示例中,您只需检查输入是否为空字符串,我们就可以检查它是否与正则表达式匹配:
if (!$('#request').val().match(/[0-9:.]/gi)) {
return;
}
我们让它寻找数字、冒号和圆点,其他一切都不匹配,返回将运行
这是一个有效的例子
(这只是一个又快又脏的例子,它并没有说明正则表达式应该以这种方式编写,可能还有更好的编写方法)这个怎么样
$('#request').keyup(function() {
var el = $(this),
val = el.val();
el.val(val.replace(/[^\d\:.]/gi, ""));
}).blur(function() {
$(this).keyup();
});
它将检查输入是否为number/:,如果不是,它将实时删除它
$(document).ready(function() {
$('#cancelbutton').hide();
});
$('#request').keyup(function() {
var el = $(this),
val = el.val();
el.val(val.replace(/[^\d\:.]/gi, ""));
}).blur(function() {
$(this).keyup();
});
$('.click').click(function() {
var conts = $('#request').val();
if ($('#request').val() === "") {
return;
}
$('.container').hide();
$('#cancelbutton').fadeIn('slow');
var rawAmount = $('#request').val();
var cleanAmount = rawAmount.split(':');
var totalAmount = parseInt(cleanAmount[0] | 0) * 60 + parseInt(cleanAmount[1] | 0);
$('#request').val(" ");
var loop, theFunction = function() {
totalAmount--;
if (totalAmount == 0) {
clearInterval(loop);
$('#cancelbutton').hide();
$('.container').fadeIn('slow');
}
var minutes = parseInt(totalAmount / 60);
var seconds = parseInt(totalAmount % 60);
if (seconds < 10)
seconds = "0" + seconds;
$('#timer').text(minutes + ":" + seconds);
$('#cancelbutton').click(function() {
totalAmount = 1
});
};
var loop = setInterval(theFunction, 1000);
})
$(文档).ready(函数(){
$(“#取消按钮”).hide();
});
$('#请求').keyup(函数(){
var el=$(此),
val=el.val();
el.val(val.replace(/[^\d\:.]/gi,”);
}).blur(函数(){
$(this.keyup();
});
$('.click')。单击(函数(){
var conts=$(“#请求”).val();
如果($('#请求').val()=“”){
返回;
}
$('.container').hide();
$(“#取消按钮”).fadeIn('slow');
var rawamunit=$(“#请求”).val();
var cleanmount=rawamunit.split(“:”);
var totalAmount=parseInt(cleanAmount[0]| 0)*60+parseInt(cleanAmount[1]| 0);
$(“#请求”).val(“”);
变量循环,函数=函数(){
总额--;
如果(总金额==0){
清除间隔(循环);
$(“#取消按钮”).hide();
$('.container').fadeIn('slow');
}
var minutes=parseInt(总金额/60);
var seconds=parseInt(总量%60);
如果(秒<10)
秒=“0”+秒;
$(“#计时器”).text(分钟+”:“+秒);
$(“#取消按钮”)。单击(函数(){
总额=1
});
};
var循环=设置间隔(函数,1000);
})
你读过正则表达式吗?@MikeC没有,但如果他们能帮我解决这个问题,我会读的。他们绝对会的。一旦你算出正则表达式(我建议这不是太难),你就可以用它来找出字符串是否与正则表达式匹配。@MikeC好的,谢谢你的帮助。
$('#request').keyup(function() {
var el = $(this),
val = el.val();
el.val(val.replace(/[^\d\:.]/gi, ""));
}).blur(function() {
$(this).keyup();
});
$(document).ready(function() {
$('#cancelbutton').hide();
});
$('#request').keyup(function() {
var el = $(this),
val = el.val();
el.val(val.replace(/[^\d\:.]/gi, ""));
}).blur(function() {
$(this).keyup();
});
$('.click').click(function() {
var conts = $('#request').val();
if ($('#request').val() === "") {
return;
}
$('.container').hide();
$('#cancelbutton').fadeIn('slow');
var rawAmount = $('#request').val();
var cleanAmount = rawAmount.split(':');
var totalAmount = parseInt(cleanAmount[0] | 0) * 60 + parseInt(cleanAmount[1] | 0);
$('#request').val(" ");
var loop, theFunction = function() {
totalAmount--;
if (totalAmount == 0) {
clearInterval(loop);
$('#cancelbutton').hide();
$('.container').fadeIn('slow');
}
var minutes = parseInt(totalAmount / 60);
var seconds = parseInt(totalAmount % 60);
if (seconds < 10)
seconds = "0" + seconds;
$('#timer').text(minutes + ":" + seconds);
$('#cancelbutton').click(function() {
totalAmount = 1
});
};
var loop = setInterval(theFunction, 1000);
})