0

我正在寻找仅适用于数字的 RegEX,也适用于货币格式 ($xxx.xx)

我目前将这段代码用于数字和字母,它工作得很好:

function validateForOnlyLettersAndNums(txt) 
{ txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, ''); }

然而,当我在网上寻找我在这里问的内容时,我只找到这样的东西:

(?<=\s|^)-?[0-9]+(?:\.[0-9]+)?(?=\s|$)

当我在这里的代码中使用它时,它似乎不起作用:

function validateForOnlyNums(txt)
{ txt.value = txt.value.replace(?<=\s|^)-?[0-9]+(?:\.[0-9]+)?(?=\s|$, ''); }
4

2 回答 2

1

你没有用正斜杠包围你的第二个正则表达式,即:

function validateForOnlyNums(txt)
{ txt.value = txt.value.replace(/?<=\s|^)-?[0-9]+(?:\.[0-9]+)?(?=\s|$/, ''); }
于 2012-08-09T13:20:17.013 回答
0

尝试:

function validateForOnlyNums(txt)
{
    txt.value = txt.value.replace(/[^$0-9\.]/g, '');
}

它应该替换与 $xxx.xx 不同的任何内容,其中 x 是带有空字符串的数字。这个唯一的缺点是它也接受像 $12..3.5$7 这样的输入。

于 2012-08-09T13:29:19.453 回答