正则表达式无法使用onkeyup函数

时间:2015-07-08 21:04:40

标签: javascript html regex

$(function(){
    $('#addAction').click(function(){
        count += 1;
        $('#extras').append('<div class="row"><div class="col-md-1">Delivery Fee: </div><input id="price_' + count + '" name="prices[]' + '" type="text" onkeyup="javascript:this.value=this.value.replace(/[^0-9.]/g, \'\');" /></div>' );
    });
});

我不知道为什么正则表达式不会用空字符串替换值。如果有人想在数字字段中添加字母值,那么应该从数字字段中删除字母值,但我试过,它不起作用,请告诉我正确的解决方案。

2 个答案:

答案 0 :(得分:1)

javascript:仅用于锚元素的href属性。

<input type="text" onkeyup="this.value=this.value.replace(/[^0-9.]/g, '');" />

答案 1 :(得分:1)

我不太确定该正则表达式应该做什么,但我假设你试图只允许输入字段中的数字。更好的方法是检查Event.keyCode属性并使用Event.preventDefault()禁止任何非数字字符。

您应该避免使用内联JavaScript,它不可维护,以后会导致问题。

您可以在这种情况下使用onkeyup使用$(function(){ var count = 0; $('#addAction').click(function(){ count += 1; var newRow = $('<div class="row"><div class="col-md-1">Delivery Fee: </div><input id="price_' + count + '" name="prices[]' + '" type="text"></div>'); $('#price_' + count, newRow).keydown(function(event){ var charCode = event.keyCode; if (!(charCode >= 48 && charCode <= 57) && !(charCode >= 96 && charCode <= 105)) { event.preventDefault(); } }); $('#extras').append(newRow); }); });事件监听器。

<button id="addAction">Click Me</button>
<div id="extras"></div>

<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
CentOS 5