用于数字的javascript正则表达式现在接受点和斜线

用于数字的javascript正则表达式现在接受点和斜线,javascript,Javascript,下面的javascript及其正则表达式代码已经开发和测试,它接受数字,但也接受不需要的项目,如“/”和点(.)以及其他项目,而不是只接受数字,如45 33 78 89。我想这是我的正则表达式的错 function validtn (textbox) { textbox.value = textbox.value.replace(/[^\0-9]/ig, ""); } <input type="text" onKeyUp="validtn(this);" /> 函数va

下面的javascript及其正则表达式代码已经开发和测试,它接受数字,但也接受不需要的项目,如“/”和点(.)以及其他项目,而不是只接受数字,如45 33 78 89。我想这是我的正则表达式的错

function validtn (textbox) { 
    textbox.value = textbox.value.replace(/[^\0-9]/ig, "");
}

<input type="text" onKeyUp="validtn(this);" />
函数validtn(文本框){
textbox.value=textbox.value.replace(/[^\0-9]/ig,”);
}

我只想要数字,其他什么都不要……

对于除数字以外的任何东西,您可以使用以下内容,即不带斜杠(不确定为什么会有斜杠)。斜杠
\
仅用于转义某些字符

textbox.value.replace(/[^0-9]/ig, "");

详情请参阅

正则表达式中的
\
实际上转义了
0
字符,因此它应该就是这个
/[^0-9]/ig
您可以这样做:

textbox.value.replace(/\D+/g, '')
// \d : digit
// \D : non-digit

? 转义字符向前工作,而不是向后工作。(不过,反斜杠很可能是导致问题的原因。可能它被解释为一个文本字符
null
——这可以解释为什么允许所有字符都达到“9”,其中恰好包括斜杠、句点和空格。)您也可以在可以在线试用正则表达式的地方尝试—然后当它工作时,把它放在你的代码里。