Html 是否有一种方法可以捕获类型=”中的字母;“数字”;输入字段?

Html 是否有一种方法可以捕获类型=”中的字母;“数字”;输入字段?,html,input,text,types,numbers,Html,Input,Text,Types,Numbers,我有一个输入字段: <input type="number" class="col-sm-12" id="scanner" autofocus> 现在,你可以把任何东西扫描到它里面,如果扫描的数据除了数字之外还包括任何东西,它就会把它们去掉。 这是针对Android webView移动应用程序的,当扫描仪有焦点时,我们只想显示数字键盘,这就是为什么它是“数字”类型 任何人都知道我如何捕获字母,即使输入字段的类型为“number”,而不将其更改回type=“text”?否,inp

我有一个输入字段:

<input type="number" class="col-sm-12" id="scanner" autofocus>

现在,你可以把任何东西扫描到它里面,如果扫描的数据除了数字之外还包括任何东西,它就会把它们去掉。 这是针对Android webView移动应用程序的,当扫描仪有焦点时,我们只想显示数字键盘,这就是为什么它是“数字”类型


任何人都知道我如何捕获字母,即使输入字段的类型为“number”,而不将其更改回type=“text”?

否,
input
字段的
numbers
属性去除了值,从我发现的值中无法捕获这些值,因为有一个隐式的
regex
应用于
input
字段

但是,你可以尝试自己验证&如果这些字母对你有价值的话,你可以抓住它们

请参见下文如何实现这一点

首先,将字段类型属性设置回
text
,即

<input type="text" placeholder="Enter Number"/>
使用正则表达式只能从字符串中获取数字:

/[^a-zA-Z]+/g
/\D/g
应用
onkeyup
事件来监视字段的输入:

onkeyup="validate(this)
最终解决方案监控
onkeyup
事件,去掉字母,只允许保留数字。但是,它会捕获
var
中的字母,以供以后使用


功能验证(元素){
变量字母=元素.值.替换(/[^a-zA-Z]+//g');
变量编号=元素.value.replace(/\D/g');
元素值=数字;
}

数字类型的输入字段允许使用字母e(表示指数)。因此,您应该能够通过键入字母e来测试您的方法。

为了帮助我们回答这个问题并避免出现错误,您可以提供一些关于为什么需要这个的信息吗?是的,我正在构建一个扫描条形码的功能。条形码只能是数字,但用户有时扫描包含字母的条形码,我们希望在不显示字母键盘的情况下捕获这些条形码。如果我不需要显示数字键盘,这是一个很好的解决方案,可以解决我的问题。肯定会用在我的另一个功能中。非常感谢。