Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止",;0“;在输入类型编号时作为第一个字符?_Javascript_Jquery_Html_Keycode - Fatal编程技术网

Javascript 如何防止",;0“;在输入类型编号时作为第一个字符?

Javascript 如何防止",;0“;在输入类型编号时作为第一个字符?,javascript,jquery,html,keycode,Javascript,Jquery,Html,Keycode,我想阻止0作为第一个字符。但当我再次聚焦和聚焦时,我在第一个中添加了“2”,它仍然运行,我想不应该运行 这是我的HTML <input type="number" id="test"> 有人帮忙或建议我该怎么做吗?谢谢。将哪个属性与数字0的ASCII码进行比较,并返回false if (evt.which === 48) { return false; } 您可以使用input事件,该事件还处理粘贴的值,String.prototype.replace()替换为RegExp/

我想阻止0作为第一个字符。但当我再次聚焦和聚焦时,我在第一个中添加了“2”,它仍然运行,我想不应该运行

这是我的HTML

<input type="number" id="test">

有人帮忙或建议我该怎么做吗?谢谢。

哪个属性与数字
0
的ASCII码进行比较,并返回false

if (evt.which === 48) {
  return false;
}

您可以使用
input
事件,该事件还处理粘贴的值,
String.prototype.replace()
替换为
RegExp
/^0/
替换元素的
.value
中找到的所有
0
字符

$(“#测试”)。在(“输入”,函数()上{
如果(/^0/.test(此.value)){
this.value=this.value.replace(/^0/,“”)
}
})

试试看


你好,苏珊斯谢谢你的回答。对不起,我想澄清我的问题。您的答案被禁用,全部为“0”。我的意思是“0”只在第一个阶段被禁用。当我为下一次输入“0”时,它应该运行。我希望您理解我的问题,谢谢:)OP的代码是否已经与
“0”进行了比较。charCodeAt(0)
检查?您是否试图阻止用户输入以
“0”
开头的值?(因此不允许使用
“02”
,但允许使用
“20”
)因为如果是这样,您就不能通过测试当前按键来实现,因为用户可以键入
“2”
,然后将光标移到它前面并键入
“0”
。(他们也可以不使用键盘编辑字段,例如,通过粘贴或拖放)为什么不更改您得到的值?我想如果您解析(例如parseint)该值,前导零将被删除Hi@nnnn是的,我的意思是。Hi@guest271314这不是我的意思。因为我只需要数字,如果用户试图通过在中间输入零来编辑现有的值,这会给用户带来一种奇怪的用户体验,因为它将光标移动到字符串的末尾。此外,我认为OP希望允许零,只要它们不是第一个字符。@nnnnnn“此外,我认为OP希望允许零,只要它们不是第一个字符。”好的。见更新后的帖子。将
^
添加到
RegExp
的开头;最初解释为不允许输入
0
字符的要求。这个问题似乎并没有表明只有
0
的第一个字符是不允许的?@dediwibisono请参阅更新的帖子。将
^
添加到
RegExp
@guest271314-我想添加此编辑,但它不够长!在0之后添加
+
以防粘贴多个零,如
this.value=this.value.replace(/^0+/,“”)
如果已经有一些值,您可以在开头键入0(例如键入77,将插入符号移到开头,键入0)
if (evt.which === 48) {
  return false;
}
$('#test').on("keypress",function (evt) {
   if (this.value.length == 1 && evt.which == 48 )
   {
      evt.preventDefault();
   }
});
  if (event.target.value.length == 0 && event.which == 48) {
  return false;
   }