Javascript删除输入字段的值

时间:2015-09-03 11:48:21

标签: javascript

我想查看用户输入","或"。"然后删除"。"或者"," 并将其替换为: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');
}

3 个答案:

答案 0 :(得分:6)

正则表达式中的.表示“除换行符之外的任何字符”,因此只需使用反斜杠将其转义:

/\./g

您可以通过执行以下操作来简化此操作:

var time = $('#enterTime');
time.val(time.val().replace(/(\.|\,)/g, ":00"));

在这种情况下,我添加了|来说',.',使您的正则表达式匹配。我添加了()来封装它。

这是正则表达式的一个(无关的)实现:

var text = document.getElementById('text');
text.textContent = text.textContent.replace(/(\.|\,)/g, ":00");

var text = document.getElementById('text2');
text.textContent = text.textContent.replace(/(\.|\,)/g, ":00");
<p>The original text was: 2,</p>
<div id="text">2,</div>

<p>The original text was: 2.</p>
<div id="text2">2.</div>

答案 1 :(得分:1)

试试这个

&#13;
&#13;
Update();
function Update() {
    var value = $('#enterTime').val();
    value = value.replace(/(\..*|\,.*)/g, ":00")
    $('#text3').text(value)
}

$('#enterTime').keyup(function () {
    Update();
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='enterTime' value='2.00500'> <span id="text3"></span>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用正则表达式时使用\转义特殊字符

$('#enterTime').val($('#enterTime').val().replace(/\./g, ":00"));
$('#enterTime').val($('#enterTime').val().replace(/\,/g, ":00"));

DEMO

在indexOf中使用||不正确。使用follwing

if($('#enterTime').val().indexOf(".") !=-1 || $('#enterTime').val().indexOf(",") !=-1){
    $('#enterTime').val($('#enterTime').val().replace(/\./g, ":00"));
    $('#enterTime').val($('#enterTime').val().replace(/\,/g, ":00"));
}