jquery正则表达式替换非数字字符但允许加号

时间:2014-02-21 02:01:32

标签: javascript jquery regex

$('#target').val($('#target').val().replace(/[^\d]/g, ""));

我使用上面的代码只在输入值中保留数字字符我还想允许'+'和' - '。

如何修改正则表达式以允许此操作?

非常感谢

2 个答案:

答案 0 :(得分:1)

-+放入角色类。

$('#target').val($('#target').val().replace(/[^-+\d]/g, ""));

答案 1 :(得分:0)

FWIW我使用了几个用jQuery控制的输入类:

<input class="intgr">
<input class="nmbr">

 $("input.intgr").keyup(function (e) { // Filter non-digits from input value.
    if (/\D/g.test($(this).val())) $(this).val($(this).val().replace(/\D/g, ''));
});
$("input.nmbr").keyup(function (e) { // Filter non-numeric from input value.
    var tVal=$(this).val();
    if (tVal!="" && isNaN(tVal)){
        tVal=(tVal.substr(0,1).replace(/[^0-9+\.\-]/, '')+tVal.substr(1).replace(/[^0-9\.]/, ''));
        var raVal=tVal.split(".")
        if(raVal.length>2)
            tVal=raVal[0]+"."+raVal.slice(1).join("");
        $(this).val(tVal);
    } 
});

intgr 剥离所有非数字

nmbr 接受+-.和0-9。除了0-9和第一个.之外,其他所有字符串都被删除了如果你可以随时随地+-,那么Bamar的解决方案就是完美,短小和甜蜜。我需要+/-只在第一个字符位置,如果有的话,只需要一个.(即在第一个句点之外剥离,所以2.5.9将是2.59)