Javascript 什么';web输入中的正则表达式有什么问题?

Javascript 什么';web输入中的正则表达式有什么问题?,javascript,regex,Javascript,Regex,我想限制一个正整数或0。所以我写了这段代码: <input type="text" name="age" id="age" value="${po.age}" onkeyup="value=value.replace(/[^[1-9]\d*|0]/g,'')" style="ime-mode:disabled;" onpaste="return false;" /> 但我发现我只能输入1-9。如果我输入0,它将被删除。如何修复它?您只需使用类型

我想限制一个正整数或0。所以我写了这段代码:

<input type="text" name="age" id="age" value="${po.age}"  
     onkeyup="value=value.replace(/[^[1-9]\d*|0]/g,'')" 
     style="ime-mode:disabled;" onpaste="return false;"
    />


但我发现我只能输入1-9。如果我输入0,它将被删除。如何修复它?

您只需使用类型为
number
的输入,并将
min
值设置为0:

试试我:

只需更改代码
value=value。将(/[^[1-9]\d*|0]/g')替换为
value=value。替换(/[^[0-9]\d*/g')
看起来是这样的


如果您需要的是后跟零的任意数字,您可以这样编写正则表达式

/[1-9]\d*[0]{1}/

您可以尝试以下方法:

<input type="text" name="age" id="age" value="${po.age}" onkeyup="value = value.replace(/[a-z]|-/gi, ''); value = parseInt(value.match(/\d+|\./gi).join('')) || '';" style="ime-mode:disabled;" onpaste="return false;"
/>


你能用这样的方法吗:

value=isNaN(parseInt(value,10))?"":parseInt(value,10)<0?"":parseInt(value,10)

value=isNaN(parseInt(value,10))?“”:parseInt(value,10)我想你想写
value。替换(/[^0-9]/g,”)
如果我按照你的方式写,它可以是00000。按照我的方式,我只想写一个0@Tushar,以您的方式,我无法输入100。它始终更改为10,因为您需要添加
^
-
。替换(/^0+/,'0'))
。如果你想确保你只签合同
0
s,如果你有一个由零组成的完整字符串,请使用
。替换(/^0+$/,'0')
为什么不使用输入类型=数字?我在第一步写这个,就像步骤=“1”,但我发现无法像0一样停止用户输入。002@flower这将使表单无效,这就是您想要的,不是吗?是的,我也不想要十进制数。@由于表单无效,用户将无法发布表单,您只需在发布时处理正整数。这不允许
0
为什么它不允许零?请告诉我@thomasayobin事实上它可以允许几乎任何包含10、20、30、40、50、60、70、80或90的内容。这取决于你如何在代码中插入它