如何在输入字段中只允许英文字母?

新手上路,请多包涵

所以,这是我的输入字段:

 <input type={type} name={name} />

我怎样才能只允许英文字母?

这是 RegEx ,我相信我应该使用: /[A-Za-z]/ig

https://regex101.com/r/upWFNy/1

我假设 onChange() 事件应该与 setState()event.target.value 结合使用。

谢谢。

附言。我需要在打字时进行此操作。

原文由 user8608046 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 367
2 个回答

我会试试这个 onChange 功能:

 onChange={(e) => {
  let value = e.target.value

  value = value.replace(/[^A-Za-z]/ig, '')

  this.setState({
    value,
  })
}}

请参阅代码笔: https://codepen.io/bozdoz/pen/vzJgQB

这个想法是用 ^ 并用 '' 替换所有 -Az字符

原文由 bozdoz 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以在输入中使用 pattern 属性。

     <input pattern = “[A-Za-z]”>

原文由 Kevin Lewis 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题