我想查看用户输入","或"。"然后删除"。"或者"," 并将其替换为: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');
}
答案 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)
试试这个
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;
答案 2 :(得分:0)
使用正则表达式时使用\
转义特殊字符
$('#enterTime').val($('#enterTime').val().replace(/\./g, ":00"));
$('#enterTime').val($('#enterTime').val().replace(/\,/g, ":00"));
在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"));
}