我正在尝试查找所有字母,破折号和美元符号,并将其从文本框中删除。

function numbersOnly()
{
    if ($('.sumit').val().indexOf([A-Za-z-$])) {
        $('.sumit').val().replace([A-Za-z-$], "");
    }
}

那就是我所拥有的,而且我敢肯定这是错误的。我对正则表达式不太满意,但是我正在尝试学习它们。是否有人想帮助我并让我开始完成此功能?

所以..您有输入。
<div class="numInputRight"><input type="text" class="sumit" name="sumAmount1"></div>
<div class="numInputRight"><input type="text" class="sumit" name="sumAmount2"></div>
<div class="numInputRight"><input type="text" class="sumit" name="sumAmount3"></div>

然后,您具有以下功能:
numbersOnly = function()
{
  $('.sumit').val().replace(/[A-Za-z$-]/g, "");
  alert($('.sumit').val());
  return false;
}

我提醒您确定替换是否正常。不是。

最佳答案

马克的所有非数字都用。如果您只想取出字母,破折号和$(例如,但保留小数),则可以对原始文件进行以下修改:

$('.sumit').val().replace(/[A-Za-z$-]/g, "");

(出于个人原因,我个人更喜欢Mark的最新答案;您会发现无法以这种方式预测的所有内容。)

对于您更新的问题,值未更改的原因是因为val()返回一个新字符串。不会更改实际值。为此,请尝试:
$('.sumit').each(function() {
    $(this).val($(this).val().replace(/[A-Za-z$-]/g, ""));
});
alert($('.sumit').val());

我也将其放入each()调用中,以便每个元素都可以单独完成。

09-19 11:28