Javascript删除输入字段的值

Javascript删除输入字段的值,javascript,Javascript,我想检查用户何时键入“.”或“.”,然后删除“.”或“,” 并将其替换为:00 例如,用户类型2.5,结果应为2:00 到目前为止,没有什么特别的,但不知何故,我的孔输入字段被清除了,只有新值:00存在 if($('#enterTime').val().indexOf("." || ",") !=-1){ $('#enterTime').val($('#enterTime').val().replace(/./g, "")); $('#enterTime'

我想检查用户何时键入“.”或“.”,然后删除“.”或“,” 并将其替换为:00

例如,用户类型2.5,结果应为2:00

到目前为止,没有什么特别的,但不知何故,我的孔输入字段被清除了,只有新值:00存在

    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
替换。