Javascript删除输入字段的值
我想检查用户何时键入“.”或“.”,然后删除“.”或“,” 并将其替换为:00 例如,用户类型2.5,结果应为2:00 到目前为止,没有什么特别的,但不知何故,我的孔输入字段被清除了,只有新值:00存在Javascript删除输入字段的值,javascript,Javascript,我想检查用户何时键入“.”或“.”,然后删除“.”或“,” 并将其替换为:00 例如,用户类型2.5,结果应为2:00 到目前为止,没有什么特别的,但不知何故,我的孔输入字段被清除了,只有新值:00存在 if($('#enterTime').val().indexOf("." || ",") !=-1){ $('#enterTime').val($('#enterTime').val().replace(/./g, "")); $('#enterTime'
if($('#enterTime').val().indexOf("." || ",") !=-1){
$('#enterTime').val($('#enterTime').val().replace(/./g, ""));
$('#enterTime').val($('#enterTime').val().replace(/,/g, ""));
$('#enterTime').val($('#enterTime').val() + ':00');
}
正则表达式中的
表示“除换行符外的任何字符”,因此只需使用反斜杠将其转义:
/\./g
您可以通过执行以下操作来简化此过程:
var time = $('#enterTime');
time.val(time.val().replace(/(\.|\,)/g, ":00"));
在本例中,我添加了|
来表示“要么,
要么,
”,使您的正则表达式与这两者都匹配。我添加了()
来封装它
下面是regex的一个(不相关)实现:
var text=document.getElementById('text');
text.textContent=text.textContent.replace(/(\。\,)/g,“:00”);
var text=document.getElementById('text2');
text.textContent=text.textContent.replace(/(\。\,)/g,“:00”)代码>
原文是:2
2.
原文是:2
2.
在正则表达式中使用时用\
转义特殊字符
$('#enterTime').val($('#enterTime').val().replace(/\./g, ":00"));
$('#enterTime').val($('#enterTime').val().replace(/\,/g, ":00"));
在indexOf中使用|
是不正确的。使用下列命令
if($('#enterTime').val().indexOf(".") !=-1 || $('#enterTime').val().indexOf(",") !=-1){
$('#enterTime').val($('#enterTime').val().replace(/\./g, ":00"));
$('#enterTime').val($('#enterTime').val().replace(/\,/g, ":00"));
}
试试这个
Update();
函数更新(){
var值=$('#enterTime').val();
值=值。替换(/(\..*\,*))/g,“:00”)
$('#text3')。文本(值)
}
$('#enterTime').keyup(函数(){
更新();
})
是正则表达式中的一个特殊字符。你需要使用\。
如果你想匹配文字
字符恭喜,比我早30秒回答我想的答案。回答得很好。问题是我的结果现在看起来像2:005:00@TamoDaleko不,这不是问题-这是软件逻辑的问题。因为这个答案。这可能不是你想要的,但你需要问另一个问题才能得到答案。这段代码很小,工作非常完美。OP was用户输入输入。所以我试过了。有人能用输入元素来解释上面代码的奇怪行为吗?它是有效的,但它的用途似乎很长,而且缺少很多优化。您最好使用replace
而不是substring
,并减少行数。@somethinghere。谢谢你的建议。我使用您的正则表达式更新了我的代码,并对/(\..*.\124;\,.*)/g
进行了小的修改,以便在
或之后,
无论是什么,都将被:00
替换。